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

OpenSSL自签名证书过期后RSA_verify仍成功的技术咨询

为什么过期证书对应的RSA签名仍能通过验证?

这个问题其实是混淆了RSA签名验证的核心逻辑和X.509证书的信任属性,我来给你拆解清楚:

  • RSA签名/验证只关心密钥对的数学有效性,和证书有效期无关
    RSA_sign是用私钥对数据生成签名,RSA_verify是用对应的公钥来校验签名是否匹配——这个过程是纯密码学运算,只依赖密钥对的数学正确性(私钥能正确生成签名,公钥能正确解密并比对),完全不涉及X.509证书里的有效期字段。证书过期只是意味着这个证书不再能作为「公钥归属某个身份」的可信凭证(比如HTTPS场景里浏览器会提示证书过期),但公钥和私钥本身的密码学有效性并没有消失。

  • 你的cert.pem包含了完整的密钥对,签名验证直接用密钥而非证书属性
    你通过cat server.crt server.key > cert.pem把证书和私钥合并成了一个文件,当你用这个文件进行RSA_sign时,实际是读取里面的私钥完成签名;而RSA_verify时,也是读取对应的公钥(从证书或私钥中导出)来做校验——整个过程根本不会去读取或验证证书里的NotAfter(过期时间)字段,自然不会因为证书过期而验证失败。

  • 补充:证书有效期的校验只发生在信任链场景
    只有在需要验证身份可信度的场景(比如TLS握手、代码签名的信任校验),才会检查证书的有效期、颁发机构、吊销状态等元数据。而单纯的RSA_sign/RSA_verify是底层的密码学原语操作,不涉及任何PKI体系的信任校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:10:41