使用 openssl 验证信任链的问题



我读了另一个关于这个话题的问题,但它们对我没有帮助。

我有一个自签名的根 CA

[ubuntu@user]$ openssl x509 -in rootca.cer -noout -subject
subject= /O=org/CN=ROOT CA
[ubuntu@user]$ openssl x509 -in rootca.cer -noout -issuer
issuer= /O=org/CN=ROOT CA

我有一个由根 CA 签名的中间 CA

[ubuntu@user]$ openssl x509 -in intermediateca.cer -noout -subject
subject= /O=org/CN=INTERMEDIATE CA
[ubuntu@user]$ openssl x509 -in intermediateca.cer -noout -noout -issuer
issuer= /O=org/CN=ROOT CA

我还有由中间 CA 签名的最终证书

[ubuntu@user]$ openssl x509 -in finalcert -noout -subject
subject= blabla
[ubuntu@user]$ openssl x509 -in finalcert -noout -noout -issuer
issuer= /O=org/CN=INTERMEDIATE CA

这是我遵循的验证过程

[ubuntu@user]$ openssl verify -verbose -CAfile rootca.cer  intermediateca.cer
intermediateca.cer: OK
[ubuntu@user]$ openssl verify -verbose -CAfile rootca.cer  -untrusted intermediateca.cer  finalcert.cer
finalcert.cer: blabla
error 20 at 0 depth lookup: unable to get local issuer certificate

为什么我无法正确验证最终证书?

谢谢。

我刚刚注意到 intermediateca 的公钥.cer在最终证书签名后已更改。这就是验证返回错误的原因。

这可以通过中间证书和最终证书中的公钥哈希进行检查。哈希存储在主题密钥标识符和颁发机构密钥标识符密钥中。

最新更新