文章目录
-
- 目标使用过期的TLS1.0 版协议
-
- 详细描述
- 解决办法
- 启用测试办法
- 注意事项
- 详细描述
- 目标主机支持RSA密钥交换
-
- 详细描述
- 解决办法
- 详细描述
目标使用过期的TLS1.0 版协议
详细描述
该插件连接到目标主机服务,检测到目标服务加密通信使用的SSL加密算法。
远程服务利用旧版 TLS 加密流量。
解决办法
启用 TLS 1.2 和/或 1.3 支持,禁用 TLS 1.0 支持
nginx样例配置如下:
1 server { 2 listen 4433 ssl; 3 server_name xxx.cn; 4 5 ssl_certificate /etc/nginx/crt/server.crt; 6 ssl_certificate_key /etc/nginx/crt/server.key; 7 # 启用高版本TLS 8 ssl_protocols TLSv1.2 TLSv1.3; 9 ssl_ciphers HIGH:!aNULL:!MD5:!RSA; 10 # ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256; 11 ssl_prefer_server_ciphers on; 12 } 13
启用测试办法
- nginx支持tls1.2
1# openssl s_client -connect xx:4433 -tls1_3 2$ openssl s_client -connect xx:4433 -tls1_2 3CONNECTED(00000003) 4Can't use SSL_get_servername 5depth=0 CN = xxxx 6verify error:num=18:self signed certificate 7verify return:1 8depth=0 CN = xxx 9verify return:1 10--- 11Certificate chain 12 0 s:CN = xxx 13 i:CN = xxx 14--- 15Server certificate 16-----BEGIN CERTIFICATE----- 17
输出了服务端证书代表支持TLSv1.2
也可以通过curl测试,比如这段输出代表TLSv1.3协议被使用:
1[root@node4 /data/nginx/conf.d]# curl -kv https://xxxx:4433 2* Trying xxx... 3* Connected to xx (#0) 4* ALPN, offering h2 5* ALPN, offering http/1.1 6* successfully set certificate verify locations: 7* CAfile: /etc/pki/tls/certs/ca-bundle.crt 8 CApath: none 9* TLSv1.3 (OUT), TLS handshake, Client hello (1): 10* TLSv1.3 (IN), TLS handshake, Server hello (2): 11* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): 12* TLSv1.3 (IN), TLS handshake, Certificate (11): 13* TLSv1.3 (IN), TLS handshake, CERT verify (15): 14* TLSv1.3 (IN), TLS handshake, Finished (20): 15* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): 16* TLSv1.3 (OUT), TLS handshake, Finished (20): 17* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 18* ALPN, server accepted to use http/1.1 19* Server certificate: 20* subject: CN=xxx 21* start date: Jun 22 07:51:21 2023 GMT 22* expire date: Jun 19 07:51:21 2033 GMT 23* issuer: CN=xxx 24* SSL certificate verify result: self signed certificate (18), continuing anyway. 25> GET / HTTP/1.1 26> Host: xx:4433 27> User-Agent: curl/7.71.1 28> Accept: */* 29> 30* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 31* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 32
- nginx禁用tls1.1测试
1$ openssl s_client -connect xx:4433 -tls1 2CONNECTED(00000003) 3281473151814288:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1544:SSL alert number 70 4--- 5no peer certificate available 6--- 7No client certificate CA names sent 8--- 9 10
注意事项
- Nginx 和 OpenSSL 版本:TLS 1.3 需要 Nginx ≥ 1.13.0 且 OpenSSL ≥ 1.1.1,若版本过低,需先升级(或仅启用 TLS 1.2)。
1 # 检查openssl版本 2 $ openssl version 3 OpenSSL 1.1.1f 31 Mar 2020
- 兼容性影响:禁用 TLS 1.0 可能影响老旧设备(如 Windows XP、IE 8 及以下),需评估业务兼容性后操作。
目标主机支持RSA密钥交换
详细描述
目标主机支持 RSA 密钥交换意味着缺乏前向保密,存在历史流量解密风险,是过时且不推荐使用的配置,建议更新为 ECDHE 等临时密钥交换算法,以增强会话安全性和隐私保护。
解决办法
禁用 RSA key exchange:只支持临时密钥交换算法(如 ECDHE_RSA 或 ECDHE_ECDSA)。
强制 TLS 1.2 或 TLS 1.3,并优先选择支持前向保密的密码套件,比如:
1TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 2 3TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 4
增加nginx配置:
1 ssl_ciphers HIGH:!aNULL:!MD5:!RSA; 2 # ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256; 3
具体在nginx.conf位置参考上面漏洞的配置文件。
《目标使用过期的TLS1.0 版协议》 是转载文章,点击查看原文。

