如何在 2025 年使用过时的 TLSv1.1/v1.0 协议

a brief on how to use tlsv1.1 or 1.0 in 2025

zping

tlscurlopenssl

313 字

2025-04-13 13:52 +0000


很多人可能会奇怪为什么有会这种需求。套话是无论协议服务端,亦或客户端都需要提供向前的兼容性。话讲得更明白——请大家接受这个丰富多彩的世界。

省流: openssl 已经强制禁用了早期的加密算法套件(ciphers)。之前的方法直接指定 ssl-protocols 已经是不够的了。如果是服务端需要指定, ssl-ciphers: DEFAULT@SECLEVEL=0 。如果是客户端,同样调整这个 SECLEVEL ,对于 curl 来说,还需要增加一个 --tls-max 参数。写成下面的形式:

$ curl -v --tls-max 1.1 --ciphers 'DEFAULT@SECLEVEL=0' -I 'https://example.com'  2>&1 | grep -i tls
* TLSv1.1 (OUT), TLS handshake, Client hello (1):
* TLSv1.1 (IN), TLS handshake, Server hello (2):
* TLSv1.1 (IN), TLS handshake, Certificate (11):
* TLSv1.1 (IN), TLS handshake, Server key exchange (12):
* TLSv1.1 (IN), TLS handshake, Server finished (14):
* TLSv1.1 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.1 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.1 (OUT), TLS handshake, Finished (20):
* TLSv1.1 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.1 / ECDHE-RSA-AES256-SHA / x25519 / rsaEncryption

自然,请把 example.com 替换成真的配置了 tlsv1.1 的网站。

最后放两个参考链接:

  1. openssl 实现 SECLEVEL最初的提交;
  2. 官方文档