相关配置:
ssl_protocols TLSv1.2;
当我在 SSL Labs 测试服务器时,测试报告 TLS 1.3 可用,并列出了默认密码和其他结果,就好像TLSv1.3
包含在我的配置中一样。
Ubuntu Server 18.04.1,OpenSSL 1.1.1 2018 年 9 月 11 日,使用 OpenSSL 1.1.0g 构建的 Nginx 1.14.1
如何禁用 TLSv1.3?
相关配置:
ssl_protocols TLSv1.2;
当我在 SSL Labs 测试服务器时,测试报告 TLS 1.3 可用,并列出了默认密码和其他结果,就好像TLSv1.3
包含在我的配置中一样。
Ubuntu Server 18.04.1,OpenSSL 1.1.1 2018 年 9 月 11 日,使用 OpenSSL 1.1.0g 构建的 Nginx 1.14.1
如何禁用 TLSv1.3?
OpenSSL 1.1.0 不支持 TLS 1.3
Ubuntu 18.04.1 附带 OpenSSL 1.1.0g,而不是 OpenSSL 1.1.1。
我的猜测是,您以某种方式在系统上安装了 OpenSSL 1.1.1,从而取代了操作系统随附的版本。因为 nginx 使用共享库,它会使用您安装的 OpenSSL 1.1.1,即使它是针对 OpenSSL 1.1.0g 编译的。
仅启用 TLS 1.2 无法实现 nginx 中的选项
ssl_protocols TLSv1.2;
。相反,默认情况下会启用所有有用的协议,并将其限制为 TLS 1.2 实际上意味着除了 TLS 1.2 之外的所有协议都被禁用。但是,它只能禁用它知道的协议,并且鉴于 nginx 是针对没有 TLS 1.3 支持的 OpenSSL 版本编译的,它不知道 TLS 1.3 存在并且也无法禁用它,这意味着它保持启用状态。看着评论:
要修复,您还需要安装 sury.org repo 版本的 nginx。在撰写本文时,此版本的 nginx 是使用 openssl 1.1.1b 和 TLS 1.3 构建的,如果我们使用替换默认 ubuntu openssl 包的 ondrej php7.3 库,则需要此版本。
我必须做同样的事情,因为我在 chrome 中收到 ERR_SSL_VERSION_INTERFERENCE ssl 错误。
前:
运行以下命令:
后:
此处的完整说明:
https://www.linuxbabe.com/ubuntu/enable-tls-1-3-nginx-ubuntu-18-10-18-04-16-04-14-04