Debian 12(OpenSSL 3.0.9)环境下无法启用TLS 1.0/1.1的问题求助
Debian 12(OpenSSL 3.0.9)环境下无法启用TLS 1.0/1.1的问题求助
我正在把一台Debian 10服务器迁移到Debian 12(内核6.x),目前只剩TLS 1.0/1.1没法正常工作,折腾了一整天还是没头绪,想求助大家帮忙排查下。
已尝试的基础配置
我知道可以通过调整SECLEVEL和MinProtocol来启用旧版本TLS,于是照着老Debian 10的配置,在新系统的OpenSSL配置里加了这段:
[system_default_sect] MinProtocol = TLSv1.0 CipherString = ALL:@SECLEVEL=1
但完全没效果。
遇到的错误现象
- Apache日志报错:依赖的Apache应用里出现了这个错误:
AH02039: Certificate Verification: Error (68): CA signature digest algorithm too weak
抓包结果异常:通过端口镜像从客户端抓包,发现TLS协商直接失败——发送Client Hello后立刻收到
Alert (Level: Fatal, Description: Protocol Version)。openssl测试对比:
- 老Debian 10(OpenSSL 1.1.1n)测试TLS 1.0完全正常:
# openssl version OpenSSL 1.1.1n 15 Mar 2022 # openssl s_client -connect OLDHOST -tls1 CONNECTED(00000003) depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = R3 verify return:1 depth=0 CN = OLDHOST verify return:1 --- Certificate chain 0 s:CN = OLDHOST i:C = US, O = Let's Encrypt, CN = R3 1 s:C = US, O = Let's Encrypt, CN = R3 i:C = US, O = Internet Security Research Group, CN = ISRG Root X1 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1 i:O = Digital Signature Trust Co., CN = DST Root CA X3 --- Server certificate -----BEGIN CERTIFICATE----- - 新Debian 12(OpenSSL 3.0.9)测试TLS 1.0/1.1均失败:
# openssl version OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023) # openssl s_client -connect NEWHOST -tls1 CONNECTED(00000003) 140101680407744:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../ssl/record/rec_layer_s3.c:1544:SSL alert number 80 --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 136 bytes Verification: OK --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: PSK identity: None PSK identity hint: None SRP username: None Start Time: 1695085443 Timeout : 7200 (sec) Verify return code: 0 (ok) Extended master secret: no
注:TLS 1.2在新服务器上是正常工作的,只有1.0和1.1出问题。
- 老Debian 10(OpenSSL 1.1.1n)测试TLS 1.0完全正常:
额外尝试的配置调整
我试过各种参数组合:
- CipherString用
DEFAULT:@SECLEVEL=1、ALL:@SECLEVEL=1、ALL:@SECLEVEL=0,甚至LEGACY - 直接在Apache配置里硬指定相关参数:
Protocols h2 http/1.1 SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ALL:@SECLEVEL=0 SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off
每次修改后都重启了Apache,甚至整个服务器,但都没有改善。
其他排查点
我查过不少相关问题,有些资料提到现在必须把SECLEVEL降到0才能支持SHA1类的旧证书,我也试过了,但还是不行。另外确认过OpenSSL 3.0并没有移除TLS 1.0/1.1的支持,理论上配置正确就能启用,但现在不管怎么设置都不生效,实在摸不着头脑。
有没有人遇到过类似情况,或者有其他办法能让旧版本TLS和老密码套件正常工作?
备注:内容来源于stack exchange,提问作者InterLinked




