Nginx服務器證書部署

發布時間:2018-01-17 16:15:25

依賴建議

l??SSL卸載驅動。建議:openssl版本1.1.0f+。

l??nginx版本Stable version:最新穩定版,生產環境上建議使用的版本。

獲取證書

  • MPKI方式:

1.???登錄https://mpki.trustasia.com。

2.???證書下載pem(nginx SLB)格式,會得到一個zip的壓縮包,解壓后有兩個文件,分別是crt和key后綴。

  • 非MPKI方式:

1.??CSR對應的key文件

2.??證書郵件里提取代碼,把-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----(包括開頭和結尾,不用換行)復制到txt文本文件里,然后保存為crt后綴;這樣也就獲取到nginx用的2個文件了。

SSL相關配置

到nginx的conf目錄,找到nginx.conf文件,修改或者配置這樣一段

server?{listen?80?default_server;listen?[::]:80?default_server;#?強制跳轉return?301?https://$host$request_uri;
}?
server?{listen?443?ssl?http2;listen?[::]:443?ssl?http2;???#IPv6支持?#RSA證書ssl_certificate?/xxx/xx/rsa.pem;ssl_certificate_key?/xxx/xx/rsa.key;#ECC證書,可選,需要1.11版本支持ssl_certificate?/xxx/xx/ecc.pem;;ssl_certificate_key?/xxx/xx/ecc.key;;ssl_session_timeout?1d;ssl_session_cache?shared:SSL:50m;ssl_session_tickets?off;#?A+級配置.ssl_protocols??TLSv1?TLSv1.1?TLSv1.2;ssl_ciphers?'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';ssl_prefer_server_ciphers?on;#?HSTS?(需要編譯帶ngx_http_headers_module模塊)?(15768000?秒=?6?月)add_header?Strict-Transport-Security?max-age=15768000;#?OCSP?Stapling?裝訂ssl_stapling?on;ssl_stapling_verify?on;
}


下面為配置文件參數說明:

listen?443


SSL訪問端口號為443

ssl???????on
啟用SSL功能

ssl_certificate
證書文件server.crt

ssl_certificate_key
私鑰文件server.pem

ssl_protocols
使用的協議

ssl_ciphers
配置加密套件,寫法遵循openssl標準

配置完成后,先用sbin/nginx –t來測試下配置是否有誤,正確無誤的話,建議重啟nginx。

http跳轉https(建議而非強制)

對于用戶,不是不知道https,就是知道https也因為懶,不愿意輸入https。這樣就有一個需求,讓服務器自動把http的請求重定向到https。

在服務器這邊的話配置的話,可以在頁面里加js腳本,也可以在后端程序里寫重定向,當然也可以在web服務器來實現跳轉。Nginx是支持rewrite的(只要在編譯的時候沒有去掉pcre)

在http的server里

增加

return 301 https://$host$request_uri;

或者

rewrite???^(.*) https://$host$1 permanent;

這樣就可以實現80進來的請求,重定向為https了

檢測

https的端口沒做限制后(防火墻放行,端口轉發正常),到https://myssl.com進行檢測

圖片 1.jpg

圖片 2.jpg

評級達到B以上,在安全和兼容方面是較不錯的。


轉自:https://www.trustasia.com/news-201801-nginx-server-certificate-deployment