1. 程式人生 > >為Nginx配置 SSL 證書 + 開啟 HTTPS網站

為Nginx配置 SSL 證書 + 開啟 HTTPS網站

1. SSL背景介紹

谷歌從 2017 年起,Chrome 瀏覽器將也會把採用 HTTP 協議的網站標記為「不安全」網站;蘋果從 2017 年 iOS App 將強制使用 HTTPS;在國內熱火朝天的小程式也要求必須使用 HTTPS 請求。

2. SSL證書型別

通常來說,SSL 證書分為三大類,他們的安全性是遞增的,當然價格和安全係數成正比。

DV (Domain Validation Certificate) 
DV 證書適合個人網站使用,申請證書時,CA 只驗證域名資訊。幾分鐘之內就能簽發。

OV ( Organization Validation Certificate) 
OV 證書需要認證公司的資訊。1-2天簽發。

EV ( Extended Validation Certificate)
EV 證書的認證最為嚴格,一般會要求提供紙質材料。簽發時間也較久。

申請方法

  • 在這裡提供幾個免費SSL申請渠道
    • 七牛提供申請免費SSL的渠道
    • 阿里雲域名服務提供的免費SSL證書
      • 完成後將證書和key內容複製出來!
      • 然後(如果檔案、目錄不存在要自行建立):
      • 將第一部分內容複製到 /var/cert/yourserver name.crt檔案中!
      • 將第二部分內容複製到/var/cert/yourservername.key檔案中!

為了確保更強的安全性,我們可以採取 迪菲-赫爾曼金鑰交換

進入 /var/cert/目錄並生成一個 yourservername.pem

cd /var/cert/
openssl dhparam -out yunfeng365.pem 2048 
# 如果你的機器效能足夠強大,可以用 4096 位加密

檔案準備完畢後,進行Nginx 配置!

  • 在你網站nginx配置檔案目錄中(eg: /etc/nginx/nginx.conf )

  • 配置80埠301跳轉

server {                                                                        
        listen 80 default_server;                                               
                                                                                
        # Make site accessible from http://localhost/                           
server_name zzutcy.top; server_name www.zzutcy.top; return 301 https://zzutcy.top$request_uri; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /var/www/hexo; index index.html index.htm; }

ssl配置

        server {                                                                
                listen 443;                                                     
                server_name zzutcy.top;                                         
                server_name www.zzutcy.top;                                     
                                                                                
        # ssl設定                                                              
        ssl on;                                                                 
        ssl_certificate /var/cert/zzutcy.crt;                                   
        ssl_dhparam /var/cert/zzutcy.pem;                                       
        ssl_certificate_key /var/cert/zzutcy.key;                               
                                                                                
        ssl_session_timeout 5m;                                                 
                                                                                
        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;                              
        ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";               
        ssl_prefer_server_ciphers on;     

                                      
         // 你的站點配置                                                                     
         location / {                                                           
            root   /var/www/hexo;                                               
            index  index.html index.htm;                                        
        }
}

重啟Nginx使配置生效!

$ sudo systemctl restart nginx

文章作者:糖醋魚