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了。