通过CLI验证针对Java证书存储的证书

问题描述:

如何通过命令行验证针对Java证书存储的X509(或DER格式)证书?通过CLI验证针对Java证书存储的证书

我已经看过使用keytool实用程序,但它看起来像只处理导入/导出/显示功能(无验证)。

编辑:它看起来好像keytool可以用于验证,但只有当尝试导入。我想提出这个问题的一个更好的方法是是否有更加被动的方法(如:不修改密钥库)。谢谢!

此页面可以简单化:

http://java.sun.com/docs/books/tutorial/security/toolfilex/rstep1.html

但它看起来并不像即使密钥工具导入做证书的真实验证。我没有看到任何关于验证传入证书的签名与另一个可信证书的签名的描述。

jarsigner将验证签名jar上的签名,但不会执行任何操作来验证用于签署jar的证书上的签名。

恐怕你要么写一个工具来做验证,要么找一个能做到的商业工具。我会认为一些PKI工具包会有一个证书验证工具可以做到这一点。

+0

我认为你是对的,Keytool不会支持我想要做的事情。我们最终选择了自己的util,尤其是因为Keytool没有签名,我们希望能够在运行之前验证可执行文件。 – Brian 2009-11-09 17:23:13

您可以使用keytoolexport将Java密钥库中所需的证书(您需要验证的证书中的证书)用于X.509文件。然后,将它们连接在一起成为一个文件。最后,使用openssl进行验证。

openssl verify -CAfile concatenated-certs.crt cert-to-verify.crt 

不是一个完美的解决方案,因为它涉及的弹出证书走出信任的,但它应该工作给你开始用什么。

+1

这适用于我,但请注意openssl需要PEM格式的证书而不是DER(这是keytool默认使用的) – Greg 2012-03-10 17:20:32