查看當前安裝的OpenSSL版本所支持的密碼列表,可以使用下列命令:openssl ciphers
蘋果ATS檢測:https://www.qcloud.com/product/ssl 剛開始"PFS(完全正向保密)"這一項未成功通過,升級Nginx版本后才通過了
具體配置方法:https://www.qcloud.com/document/product/400/6973
Nginx 證書加密套件配置:
更新Nginx根目錄下 conf/nginx.conf 文件如下:
server { ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; }
--------------------------------------------------------------------------------------------------------
Nginx 配置支持HTTPS
vim nginx.conf
server { listen 80; listen 443 ssl; server_name *.*.com ...
#ssl on; #在同一個server{}里配置同時開啟http和https時,不需要開啟此項! ssl_certificate /data/mysite/htdocs/server.pem; ssl_certificate_key /data/mysite/htdocs/server.key; ... }
http 與https並存
nginx配置https的官網鏈接:http://nginx.org/en/docs/http/configuring_https_servers.html
--------------------------------------------------------------------------------------------------------
Nginx證書部署
一、 獲取pem格式的證書公私鑰
1.使用mpki方式申請證書的。
首先登錄mpki系統:https://mpki.trustasia.com。然后下載證書
訂單密碼:下訂單時候設置的密碼
證書密碼:解壓密碼(下載下來的是證書的zip的壓縮文件)
證書格式:pem for nginx
解壓后會獲得兩個文件:cer后綴的是證書公鑰(此文件可以改名為server.pem),key后綴的是私鑰(可以改名為server.key)
2.非mpki方式
這種方式私鑰key是自行生成的(可以改名為server.key)。
證書公鑰可以這樣提取:
收到證書頒發郵件,郵件里有證書 和 證書鏈 兩部分。把代碼部分(包含-----BEGIN CERITIFICATE-----到-----END CERITIFICATE-----)一起復制保存到一個新的文本文檔中,順序是證書代碼在前面,證書鏈代碼在后面,這樣新的文本文檔里有兩段甚至多段證書代碼。新的文本文檔名可以叫做server.pem
二、 在nginx里部署證書及優化配置ssl
到nginx的conf目錄,找到nginx.conf文件,修改或者配置這樣一段
server {
listen 443;
server_name www.trustasia.com #你們的域名,如www.abc.com;
ssl on;
ssl_certificate /xxx/xxx/server.pem;
ssl_certificate_key /xxx/xxx/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個協議配
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#按照這個加密套件配
location / {
root html; #站點目錄
index index.html index.htm;
}
}
下面為配置文件參數說明:
listen 443
SSL訪問端口號為443
ssl on
啟用SSL功能
ssl_certificate
證書文件server.pem
ssl_certificate_key
私鑰文件server.pem
ssl_protocols
使用的協議
ssl_ciphers
配置加密套件,寫法遵循openssl標准
配置完成后,先用bin/nginx –t來測試下配置是否有誤,正確無誤的話,建議重啟nginx。(不是reload)
三、 使用全站加密,http自動跳轉https(可選)
對於用戶,不是不知道https,就是知道https也因為懶,不願意輸入https。這樣就有一個需求,讓服務器自動把http的請求重定向到https。
在服務器這邊的話配置的話,可以在頁面里加js腳本,也可以在后端程序里寫重定向,當然也可以在web服務器來實現跳轉。Nginx是支持rewrite的(只要在編譯的時候沒有去掉pcre)
在http的server里
增加rewrite ^(.*) https://$host$1 permanent;
這樣就可以實現80進來的請求,重定向為https了。