nginx TLS 配置建议(Mozilla Recommendation)

写在前面

本文主要按照 Mozilla 对于服务端 TLS 协议配置的建议来提供 nginx 的配置建议,按照这些建议进行配置可以让我们的站点更加安全。

适用于个人站点的配置

如果你的站点无需向后兼容(老旧的浏览器、客户端和操作系统),那么这是整个建议中最安全的配置。所以十分适合个人站点,比如个人博客。

server {
    ......
    # 启用 HSTS。
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    # 仅启用 TLS 1.3 协议。
    ssl_protocols TLSv1.3;
    ssl_conf_command MinProtocol TLSv1.3;
    # 启用建议的加密套件,这些套件均支持前向安全性。
    ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    # 启用建议的 ECC 曲线。
    ssl_ecdh_curve  X25519:prime256v1:secp384r1;
    ......
}

适用于绝大多数站点的配置

如果你需要兼容过去五年内发布的应用程序(如浏览器),下面是建议的配置。

server {
    ......
    # 启用 HSTS。
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    # 仅启用 TLS 1.2 和 TLS 1.3 协议。
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_conf_command MinProtocol TLSv1.2;
    # 启用建议的加密套件,这些套件均支持前向安全性。
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    # 启用建议的 ECC 曲线。
    ssl_ecdh_curve  X25519:prime256v1:secp384r1;
    ......
}

升级你的 Openssl

请将你的 Openssl 升级到 1.1.1k 或以上的版本,之前的版本已经被爆出了两个漏洞,详见 OpenSSL Security Advisory [25 March 2021]。一个漏洞可以进行 DoS 攻击,另一个则可以进行中间人攻击。

你可以通过运行命令 nginx -V 来查看你的 nginx 编译时用的 openssl 的版本,或者运行时使用的版本。你应该能看到下面这行,请保证运行时所使用 openssl 的版本在 1.1.1k 及以上,如果没有括号里的内容请确保编译时所使用的 openssl 的版本在 1.1.1k 及以上

built with OpenSSL 1.1.1i  8 Dec 2020 (running with OpenSSL 1.1.1k  25 Mar 2021)

前向安全性

简单来说如果某一天你的服务器上的证书私钥泄露了,你之前的通信也无法被解密,你需要做的只是换一个证书而已。

参考资料

本文作者:ADD-SP
本文链接https://www.addesp.com/archives/4293
版权声明:本博客所有文章除特别声明外,均默认采用 CC-BY-NC-SA 4.0 许可协议。

评论

  1. thanks
    3年前
    2021-6-07 22:58:40

    谢谢。在前几个版本,nginx一直都不能调整TLS1.3的密码套件的顺序。全网都找不到资料,只有你这里给出的范例有用。

发送评论 编辑评论


上一篇
下一篇