![如何将 TLSv1.2 和 TLSv1.1 添加到 ssl 协议?](https://linux22.com/image/757340/%E5%A6%82%E4%BD%95%E5%B0%86%20TLSv1.2%20%E5%92%8C%20TLSv1.1%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20ssl%20%E5%8D%8F%E8%AE%AE%EF%BC%9F.png)
我的项目使用的是 DigitalOcean 服务器。该服务器的默认 TLS 是 TLSv1.3
但在我的 Nginx 配置上,即使我不添加TLSv1.3
,仍然只TLSv1.3
出现。
如何添加TLSv1.2
SSL 协议?
问题是,如果我使用TLSv1.3
,则会出现handshake tls version
错误Flutter
,所以我需要添加旧版本。
nginx
和openssl
版本:
nginx version: nginx/1.18.0
built with OpenSSL 1.1.1g 21 Apr 2020
TLS SNI support enabled
nginx
配置:
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1.1 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_prefer_server_ciphers off;
您可以通过此链接检查 tls 版本: tls 版本
输出nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
答案1
nginx 似乎首先选择 TLS 版本,然后才检查 SNI。
因此,它ssl_protocols
使用与选择默认虚拟主机相同的算法进行选择。也就是说,如果有一个server
带有 的块listen ... default_server
,ssl_protocols
则从该块开始使用。否则,将使用第一个server
块。ssl_protocols
这意味着您需要ssl_protocols
在http
级别上指定所有虚拟主机并包含任何虚拟主机所需的所有协议。
您可以在nginx 邮件列表消息