You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Apache24从2.4.55到2.4.58出现SSL签名算法错误的原因

解决Apache 2.4.58 + OpenSSL 3.x SSL握手失败问题

根因分析

Apache 2.4.58默认适配OpenSSL 3.x版本,而OpenSSL 3.x默认禁用了1.1.1时代允许的弱签名算法(如SHA-1、RSA密钥长度<2048位),如果你的证书使用了这类算法,或者客户端环境不支持现代签名算法,就会触发no suitable signature algorithm错误。

具体解决步骤

1. 检查并更新SSL证书

  • 用OpenSSL命令查看当前证书的签名算法和密钥长度:
    openssl x509 -in your_domain.crt -text -noout
    
  • 重点查看两个字段:
    • 若Signature Algorithm是sha1WithRSAEncryption或其他SHA-1相关算法,必须重新生成使用SHA-256/384/512的证书
    • 若Public-Key长度<2048位,重新生成密钥长度≥2048位的证书(推荐4096位)

2. 调整Apache的SSL配置(httpd-ssl.conf)

在<VirtualHost *:443>配置块中添加或修改以下内容:

# 仅启用安全的TLS协议(如需兼容极旧客户端可保留TLSv1.1,不推荐)
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
# 指定现代安全加密套件
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
# 禁用密码套件排序,让客户端选择最优兼容套件
SSLHonorCipherOrder off
# 明确指定允许的签名算法,排除弱算法
SSLSignatureAlgorithms ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512

3. 修正OpenSSL配置生效问题

如果之前修改openssl.cnf的安全级别未生效,可直接在Apache配置中指定:

# 在httpd.conf或httpd-ssl.conf中添加
SSLCipherSuite DEFAULT@SECLEVEL=2

注意:SECLEVEL=2要求证书密钥≥2048位、签名算法≥SHA-256,若证书不符合需先更新证书。

4. 排查客户端环境

  • 若客户端是旧系统(如Windows 7),需安装TLS 1.2/1.3支持补丁
  • 旧浏览器(如IE11以下)需升级到现代浏览器,或调整浏览器安全设置启用TLS 1.2+

内容的提问来源于stack exchange,提问作者MatChaね

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:00:24