如何通过命令行针对Java证书存储区验证X509(或DER格式)证书?
我已经研究过使用keytool
实用程序,但看起来它只处理导入/导出/显示功能(没有验证)。
编辑:看起来好像keytool
可以用于验证,但只有在尝试导入时才可以。我想更好的问一个问题的方法是,是否有更加被动的方法(如:不修改密钥库)。谢谢!
答案 0 :(得分:13)
您可以将keytool
export
所需的证书(您需要验证的证书链中的证书)从Java密钥库用于X.509文件。然后,将它们连接成一个文件。最后,使用openssl
进行验证。
openssl verify -CAfile concatenated-certs.crt cert-to-verify.crt
不是一个完美的解决方案,因为它涉及将证书从证书库中弹出,但它应该按照您的开始工作。
答案 1 :(得分:2)
此页面可能过于简单化了:
http://java.sun.com/docs/books/tutorial/security/toolfilex/rstep1.html
但即使使用keytool进行导入也无法真正验证证书。我没有看到任何关于根据另一个可信证书的签名验证传入证书的签名的描述。
jarsigner将在已签名的jar上验证签名,但是没有做任何事情来验证用于签署jar的证书上的签名。
我担心你要么必须编写一个工具来进行验证,要么寻找一个能够做到这一点的商业工具。我认为一些PKI工具包会有一个证书验证工具可以做到这一点。