配置Nginx支持TLS 1.0和1.1

未能创建 SSL/TLS 安全通道

最近将服务器升级到Ubuntu 22.04.2 LTS后,部分终端的.Net framework应用连接时报错:“请求被中止:未能创建SSL/TLS 安全通道”。

这个问题以前也出现过,终端的操作系统是Windows 7,只能安装.Net Framefork 4.0,但是4.0不支持TLS1.2,而Ubuntu升级后不支持TLS1.0和1.1,这就导致无法建立SSL/TLS安全通道。

当时主要参考 ubuntu不支持tls1.0解决,修改openssl的配置/etc/ssl/openssl.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
//在第一行增加:
openssl_conf = default_conf

//在尾部增加:
[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1

Ubuntu升级过程中,都是选择的维持现有配置,所以/etc/ssl/openssl.cnf里还是有这些配置,不知道为什么没有生效。

修改Nginx的配置

参考 Enable TLS 1.0 and TLS 1.1 on Ubuntu 20.04

修改nginx的配置:

nginx.conf
1
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:@SECLEVEL=1";

使用openssl测试

nginx.conf
1
2
openssl s_client -connect xiaoboey.top:443 -tls1_1
openssl s_client -connect xiaoboey.top:443 -tls1

还是没解决。。。