Nginx配置SSL證書實現Https安全訪問

1.簡介

什麼是Https?簡單地說就是http的一個安全版本。HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

2.證書申請

可以在阿里雲或騰訊雲上申請一個SSl證書(如果是個人用戶-都有個人單域名免費版),
如果企業還是在權威機構,一般需要購買證書。一般申請了證書需要審覈完畢後就可以下載證書文件了。
以阿里云爲例
在這裏插入圖片描述

3.安裝SSL模塊

使用Nginx配置SSL證書需要模板支持。若未安裝請參考:傳送門

4.配置Nginx

接下來我們配置Nginx.conf,將下載的證書和Key的所在位置配置到配置文件上。具體配置如下
創建配置 示例目錄:/home/nginx/conf/nginx_ssl.conf

#定義Nginx運行的用戶和用戶組(默認不添加,啓動後顯示-nobody)
user root;

worker_processes  1; # Nginx 進程數,一般設置爲和 CPU 核數一樣

events {
    worker_connections  1024; # 每個進程允許最大併發數
}

http {
    default_type  application/octet-stream;  # 默認文件類型
    sendfile        on; # 開啓高效傳輸模式
    keepalive_timeout  65; # 保持連接的時間,也叫超時時間,單位秒
    charset utf-8; # 設置編碼格式
    
   server {    
	    listen 443 ssl; #監聽443端口(https默認端口)
	    server_name www.xxx.com; #填寫綁定證書的域名
	    ssl_certificate /home/xxx/xxx.crt; #填寫你的證書所在的位置
	    ssl_certificate_key /home/xxx/xxx.key; #填寫你的key所在的位置
	    ssl_session_timeout 5m;
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #協議配置
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #套件配置
	    ssl_prefer_server_ciphers on;
	    location / {
	     root  /home/xxx/ ; #填寫你的你的站點目錄
	     index index.html index.htm;
	   }
 }
}

5.重啓服務器

下面我們進行服務器的重啓,在重啓之前先檢驗配置文件是否有錯誤

cd /usr/local/nginx/sbin 

#檢測配置
nginx -t -c /home/nginx/conf/nginx_statis.conf

在這裏插入圖片描述
若沒有報錯則啓動

./nginx -c /home/nginx/conf/nginx_ssl.conf 


訪問地址示例:https://www.xxx.top

6.可選配置

6.1 HTTP請求轉發到HTTPS

添加如下配置到nginx配置,這樣訪問 http也會默認跳轉到https了

server {
    listen       80;
    server_name  www.xxx.com;#填寫綁定證書的域名
    rewrite ^ https://$http_host$request_uri? permanent;    # 將http轉到https
 }

重啓指定配置命令

./nginx -s reload -c /home/nginx/conf/nginx_ssl.conf

7.常見錯誤

7.1unknown directive ssl

出現原因以及解決方案, 詳見:傳送門

7.2the “ssl” directive is deprecated, use the “listen … ssl”

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章