java 如何检查证书是否在默认缓存中

bgibtngc  于 2023-01-11  发布在  Java
关注(0)|答案(3)|浏览(193)

客户端为我提供了一个HTTPS URL用于服务调用。我需要向该URL发出请求。我知道,如果该URL的证书来自公共提供程序,那么它可能已经在默认的Java信任存储cacerts上可用。
但是我不确定如何检查是否需要导入证书,如何检查来自某个网站的证书是否已经存在于默认的java truststore \jre1.8\lib\security\cacerts中?

yzuktlbb

yzuktlbb1#

您可以使用java keytool在cacert击键中检查(列出)证书。

keytool -list -v -keystore /path/to/cacerts

keytool必须位于您的路径中,或者可以在Java安装的bin目录中找到(例如C:/Program Files (x86)/Java/jre1.8/bin/keytool.exe)。

bkhjykvo

bkhjykvo2#

只要尝试用URLHttpsURLConnection连接到它,至少能得到响应代码,而不需要花哨的信任管理器或任何东西,如果它是可信的,就不会有问题。
您的术语有误。所有证书都是公开的。如果是 * CA签名的 * 证书,由证书在cacerts中的 CA 签名,则不需要导入。

hiz5n14c

hiz5n14c3#

在cacerts中列出证书的简单方法是

keytool -v -list -cacerts -storepass changeit

相关问题