java - 证书是否可以在没有父 CA 的情况下使用根 CA 或祖父 CA 进行验证

java - can a certificate be verified with root CA or grand-parent CA without parent CA

我正尝试在 Java 中执行此操作,但我认为这是一个一般的证书问题。 我有根CA,根CA签发的中间CA1,中间CA1签发的中间CA2,中间CA2签发的证书

rootCA -> interCA1 -> interCA2 -> 证书

是否可以在不知道 interCA2 的情况下使用 interCA1 验证证书?

cert.verify(interCA2.getPublicKey()); // ok
interCA2.verify(interCA1.getPublicKey()); // ok
cert.verify(interCA1.getPublicKey()); // NOT ok -> is there any way to fix or bypass this? 

您不能这样做,因为 interCA1 不是证书的颁发者。

cert.verify(interCA1.getPublicKey());

证书是使用颁发证书的私钥签名的,因此您需要其 public 密钥来验证签名。因此,要验证证书,需要完整的认证链。