Nginx https證書部署

netcorner發表於2017-07-20

1 獲取證書

Nginx資料夾內獲得SSL證書檔案 1_www.domain.com_bundle.crt 和私鑰檔案 2_www.domain.com.key,
1_www.domain.com_bundle.crt 檔案包括兩段證書程式碼 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,
2_www.domain.com.key 檔案包括一段私鑰程式碼“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。

2 證書安裝

將域名 www.domain.com 的證書檔案1_www.domain.com_bundle.crt 、私鑰檔案2_www.domain.com.key儲存到同一個目錄,例如/usr/local/nginx/conf目錄下。
更新Nginx根目錄下 conf/nginx.conf 檔案如下:

server {
        listen 443;
        server_name www.domain.com; #填寫繫結證書的域名
        ssl on;
        ssl_certificate 1_www.domain.com_bundle.crt;
        ssl_certificate_key 2_www.domain.com.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   html; #站點目錄
            index  index.html index.htm;
        }
    }

 

配置完成後,先用bin/nginx –t來測試下配置是否有誤,正確無誤的話,重啟nginx。就可以使 https://www.domain.com 來訪問了。

注:

 

配置檔案引數說明
listen 443 SSL訪問埠號為443
ssl on 啟用SSL功能
ssl_certificate 證書檔案
ssl_certificate_key 私鑰檔案
ssl_protocols 使用的協議
ssl_ciphers 配置加密套件,寫法遵循openssl標準

3 使用全站加密,http自動跳轉https(可選)

對於使用者不知道網站可以進行https訪問的情況下,讓伺服器自動把http的請求重定向到https。
在伺服器這邊的話配置的話,可以在頁面里加js指令碼,也可以在後端程式裡寫重定向,當然也可以在web伺服器來實現跳轉。Nginx是支援rewrite的(只要在編譯的時候沒有去掉pcre)
在http的server裡增加rewrite ^(.*) https://$host$1 permanent;
這樣就可以實現80進來的請求,重定向為https了。

相關文章