首页/安全/加密与证书速查/弱签名算法排查

弱签名算法排查

检查证书签名是否仍在用 SHA-1 或 MD5:公开 TLS 证书已不允许 SHA-1 签名,主流浏览器会拦截。用 x509 -text 查看 Signature Algorithm,并对链上每张证书分别检查。

加密与证书速查安全更新于 2026-10-13

弱签名算法排查

排查的目标很直接:确认证书签名没有使用 SHA-1 或 MD5。公开信任的 TLS 证书早已不允许 SHA-1 签名,主流浏览器会对这类证书直接拦截。检查时要覆盖整条链——叶证书与中间证书分别查看,因为链上任意一张弱签名都可能触发拦截,而报错信息通常只笼统地说证书不受信任,容易把人引到错误方向。

基本信息

检查命令openssl x509 -text 配合查找 Signature Algorithm
影响范围叶证书与中间证书都要检查
替代方案SHA-256 或 SHA-384 等更强哈希的签名
内网同样适用私有 CA 也应避免 SHA-1
常见来源多年前签发的中间证书与自建 CA
处置方式重新签发,或更换为使用强签名的签发者

典型使用场景

  • 上线前检查:确认新证书与整条链的签名算法都符合要求
  • 资产盘点:批量扫描历史证书,找出仍用 SHA-1 的资产
  • 排查浏览器拦截:先看签名算法,再检查其他项目
  • 内网整改:把私有 CA 的签名算法一并升级
  • 供应商核查:要求证书提供方说明签名算法与所用哈希

批量检查证书签名算法

批量检查证书签名算法
for f in *.pem; do
  echo -n $f:
  openssl x509 -in $f -noout -text 2>/dev/null | grep -m1 'Signature Algorithm'
done

算法与状态

签名算法状态说明
sha256WithRSAEncryption允许当前通用的选择
ecdsa-with-SHA256允许椭圆曲线证书常见
sha1WithRSAEncryption不允许公开信任链已被禁止
md5WithRSAEncryption不允许早已淘汰
内网私有 CA 同样建议避免 SHA-1:客户端或安全基线收紧后,存量证书会集中失效。
签名算法与公钥长度是两件事:3072 位的密钥如果仍用 SHA-1 签名,同样会被拒绝,排查时两个维度都要看。
续期本身不会自动修好这个问题:如果签发者就是使用弱签名的中间 CA,换一张叶证书也没用,必须先把链上的弱环节替换掉。
批量检查时务必带上链文件:把 fullchain 拆成单张证书再逐张看签名算法,比只检查叶证书更能反映真实的拦截风险。

易错点

  • 只检查叶证书而漏掉链上仍为 SHA-1 的中间证书
  • 把签名哈希强度与公钥长度混为一谈
  • 认为续期就能解决问题,却忽略了签发者本身的签名算法
  • 内网资产不做检查,等客户端策略收紧后集中失效
  • 只靠浏览器是否报错来判断,不如直接用命令检查整条链

数据来源与参考

  • RFC 9155(弃用 MD5 与 SHA-1 签名)
  • CA/Browser Forum Baseline Requirements(签名算法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌