我有一个项目,我必须验证给定证书的链,以便所有权限都在我的持久性中。
有人告诉我,如果我检索给定证书的指纹,我可以用它来识别它的CA.这是真的,如果是的话(最有可能在JAVA中)我可以这样做吗?
我们已经找到了如何使用javas内置来检索指纹,但没有人能告诉我如何使用单个证书的指纹来识别CA或链。也许有不同的方式来实现我的目标?
答案 0 :(得分:1)
有人告诉我,如果我检索给定证书的指纹,我可以使用它来识别其CA.这是真的,如果是的话(最有可能在JAVA中)我可以这样做吗?
不,这是假的。证书指纹是在整个证书上计算的哈希。指纹不包含有关CA的信息
我们已经找到了如何使用javas内置来检索指纹,但没有人能告诉我如何使用单个证书的指纹来识别CA或链。也许有不同的方式来实现我的目标?
您可以检查证书是否使用颁发证书的私钥进行签名,使用与颁发者关联的公钥验证数字签名
在java中,使用您的可信证书列表
进行检查 Certificate certificate = ... //Last certificate from bottom to top of the provided chain
Certificate issuerCertificate =... //one of the certificates of the trusted list
certificate.verify(issuerCertificate.getPublicKey());