nginx
nginx是一套網頁伺服器,在效能與設定彈性上取得不錯的平衡點。
設定
SSL
在/etc/nginx/conf.d/ssl.conf
內的設定如下:
ssl_protocols TLSv1 TLSv1.2; ssl_ciphers "ECDH+AESGCM+AES256:DH+AESGCM+AES256:ECDH+AESGCM:DH+AESGCM:ECDH+AES+SHA384:DH+AES+SHA384:ECDH+AES+SHA256:DH+AES+SHA256:ECDH+AES128:DH+AES128:ECDH+CAMELLIA:DHE+CAMELLIA:!ADH:!AECDH:!DSS:!MD5"; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_cache shared:SSL:30m; ssl_session_timeout 30m;
這跟其他網站上建議的有些差異:
- 直接關掉
TLSv1.1
: - 因為就瀏覽器安全性來說一定要用
TLSv1.2
,就瀏覽器支援度來說則是開TLSv1.1
,目前沒有看到需要開TLSv1.1
才會動情況,直接關掉反而可以避免nginx實做TLSv1.1
有問題時的風險(因為用的人少,眼球會比較少,這個協定風險反而比另外兩個高)。 - 調低SHA-1(
SHA
)優先權: - 因為目前還是有瀏覽器不支援較新的
SHA256
(配合AES128
)或SHA384
(配合AES256
),所以還是得支援SHA-1,但優先權儘量排低。 - 試着支援非NIST架構的協定:
- 目前cipher都是NIST所選出的協定,所以還是多選了Camellia(
CAMELLIA128
)讓使用者可以用。之後會規劃將ChaCha20+Poly1305放入列表(還在觀察,尤其是流動裝置上對AES的硬件加速支援反而使得ChaCha20+Poly1305未必比較快)。
外部連結
- 官方網站 (英文)