通过CLI根据Java证书存储验证证书

通过CLI根据Java证书存储验证证书,java,certificate,verification,keystore,keytool,Java,Certificate,Verification,Keystore,Keytool,如何通过命令行根据Java证书存储验证X509(或DER格式)证书 我研究过如何使用keytool实用程序,但它似乎只处理导入/导出/显示功能(没有验证) 编辑:看起来好像keytool可用于验证,但仅在尝试导入时使用。我想问这个问题的一个更好的方法是是否有一种更被动的方法(比如:不修改密钥库)。谢谢 此页面可能过于简单化: 但看起来,即使使用keytool导入也不会对证书进行真正的验证。我没有看到任何关于将传入证书的签名与另一个受信任证书的签名进行验证的描述 jarsigner将在已签名的j

如何通过命令行根据Java证书存储验证X509(或DER格式)证书

我研究过如何使用
keytool
实用程序,但它似乎只处理导入/导出/显示功能(没有验证)


编辑:看起来好像
keytool
可用于验证,但仅在尝试导入时使用。我想问这个问题的一个更好的方法是是否有一种更被动的方法(比如:不修改密钥库)。谢谢

此页面可能过于简单化:

但看起来,即使使用keytool导入也不会对证书进行真正的验证。我没有看到任何关于将传入证书的签名与另一个受信任证书的签名进行验证的描述

jarsigner将在已签名的jar上验证签名,但不会在用于签名jar的证书上验证签名


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

您可以使用
keytool
将所需的证书(您需要验证的证书链中的证书)从Java密钥库导出到X.509文件中。然后,将它们连接到一个文件中。最后,使用
openssl
进行验证

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

这不是一个完美的解决方案,因为它需要将证书从信任库中弹出,但考虑到您从何开始,它应该会起作用。

我认为您是对的,Keytool不支持我尝试的操作。我们最终选择了制作自己的util,特别是因为Keytool没有签名,我们希望能够在运行它之前验证可执行文件。共享该util将非常棒!这对我来说很有效,但请注意,openssl需要PEM格式的证书,而不是DER(这是keytool默认使用的)