刚刚将 Debian 从“稳定”版本 9.* 更新至“测试”版本 10.*。
有 nginx 1.14 - 曾经来自“稳定的向后移植”,现在包含在 Debian 本身中。
在 nginx 中看到 TLS 版本的一个奇怪问题。
TLS 1.3 已启用,1.2 也已启用,但我似乎无法获得 TLS 1.0 / 1.1,即使它们包含在 nginx 配置中。
https://www.htbridge.com/ssl/?id=QgSrZIuN
哦,顺便说一句,在同一系统上运行的 Dovecot 仍然具有 TLS 1.0 - 1.1 - 1.2 - 1.3 所有功能:
https://www.htbridge.com/ssl/?id=cSArIbQQ
nginx 站点配置中的相关位:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers kECDHE+CHACHA20:kECDHE+AESGCM:kDHE+AESGCM:kECDHE+AES+SHA:kDHE+AES+SHA:!AESCCM:!aNULL:!eNULL; ssl_prefer_server_ciphers on;
我尝试删除其中一个ssl_protocols
或ssl_ciphers
两个,但实际上没有任何改变。
这是 nginx - 上游的有意更改还是由 Debian 打包的? openssl 本身有变化吗?
有什么办法可以在 nginx 中同时启用从 1.0 到 1.3 的所有 TLS 版本吗?
哦,关于 Dovecot 的说明...我正在运行来自他们的存储库的版本,而不是来自 Debian 的版本,它是针对 Debian“稳定”而不是“测试”的,因此可能与没有 TLS 1.3 支持的 OpenSSL 1.1 链接。
它有一种不同的方式(与 nginx 不同)来指定 TLS 版本:
ssl_min_protocol = TLSv1
在更新 Debian 之前解析为 1.0 / 1.1 / 1.2,现在解析为 1.0 - 1.3(含)。
想知道是否有一种方法可以以相同的方式指定 nginx 协议(这将使我获得所有 TLS 1.0 - 1.3)。
答案1
在 nginx 论坛上得到了答案:
https://forum.nginx.org/read.php?2,281984,282011#msg-282011
简洁版本:
编辑/etc/ssl/openssl.conf
进行此更改
[system_default_sect] -MinProtocol = TLSv1.2 +MinProtocol = TLSv1 CipherString = DEFAULT@SECLEVEL=2
这改变了系统默认最低启用协议从 TLS 1.2 到 1.0。