nginx
nginx是一套网页服务器,在效能与设定弹性上取得不错的平衡点。
安装
在Ubuntu上除了内建版本外(在16.04是1.10.3),也有PPA可以安装新版。
设定
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+AES256:DH+AES256:ECDH+AES:DH+AES:ECDH+CAMELLIA:DH+CAMELLIA:!ADH:!AECDH:!DSS:!ECDSA:!MD5" ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_cache shared:SSL:30m; ssl_session_timeout 30m;
这跟其他网站上建议的有些差异:
- 直接关掉
TLSv1.1
: - 因为就浏览器安全性来说,应该使用
TLSv1.2
,就相容性来说,则是使用TLSv1.0
,而目前没有看到需要开TLSv1.1
才会动情况,直接关掉反而可以避免nginx实做TLSv1.1
有问题时的风险(因为用的人少,眼球会比较少,这个协定风险反而比另外两个高)。 - 调低SHA-1(
SHA
)优先权: - 因为目前还是有浏览器不支援较新的
SHA256
(配合AES128
)或SHA384
(配合AES256
),所以还是得支援SHA-1,但优先权尽量排低。 - 试着支援非NIST架构的协定:
- 目前cipher都是NIST所选出的协定,所以还是多选了Camellia(
CAMELLIA128
)让使用者可以用。之后会规划将ChaCha20+Poly1305放入列表(还在观察,尤其是移动设备上对AES的硬件加速支援反而使得ChaCha20+Poly1305未必比较快)。
外部链接
- 官方网站 (英文)