Cyber Coding Course

師其意,不泥其跡

如何設定nginx上的HTTPS,取得Qualys的SSL A+評分

本文介紹如何調整nginx的ssl設定,讓網站取得SSL報告,取得A+的評比。
這裡我使用的為 letsencrypt 免費憑證。
只要您使用D-Laravel預設的Docker官方nginx新版image,
應該都可以達到跟我一樣的效果。

下方為SSL檢測網址,可用來檢測您主機上的SSL設定:
https://www.ssllabs.com/ssltest/index.html

有圖有真相,先來看看我的結果吧..:),在Nginx上設定非常簡單哦。
ssl a plus rating

以下是我使用在D-Laravel中的ssl完整設定檔,您可以下載參考及自行調整:
完整設定檔ccc-ssl.conf

主要包含了如下的設定:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_certificate /etc/nginx/conf.d/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl/privkey.pem;
ssl_ciphers  EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:HIGH:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/nginx/conf.d/ssl/dhp-512.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/conf.d/ssl/chain.pem;

此外,我生成一組512位的 diffie-hellman (迪菲-赫爾曼密鑰交換)參數,以提高某些類型的密碼的安全性。
例如:(4096會花很長的一段時間,您可以使用2048或是我使用512。)

您可以在終端機使用 openssl 指令,產生該檔案
openssl dhparam -out dhp-2048.pem 2048

 

作者: Devin Yang