You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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没法正常工作,折腾了一整天还是没头绪,想求助大家帮忙排查下。

已尝试的基础配置

我知道可以通过调整SECLEVELMinProtocol来启用旧版本TLS,于是照着老Debian 10的配置,在新系统的OpenSSL配置里加了这段:

[system_default_sect]
MinProtocol = TLSv1.0
CipherString = ALL:@SECLEVEL=1

但完全没效果。

遇到的错误现象

  1. Apache日志报错:依赖的Apache应用里出现了这个错误:

AH02039: Certificate Verification: Error (68): CA signature digest algorithm too weak

  1. 抓包结果异常:通过端口镜像从客户端抓包,发现TLS协商直接失败——发送Client Hello后立刻收到Alert (Level: Fatal, Description: Protocol Version)

  2. 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出问题。

额外尝试的配置调整

我试过各种参数组合:

  • CipherString用DEFAULT:@SECLEVEL=1ALL:@SECLEVEL=1ALL:@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

火山引擎 最新活动