客户为我提供了一个用于服务调用的 HTTPS URL。我需要向该 URL 发出请求。我知道,如果该 URL 的证书来自公共提供商,则它可能已经在默认的 java truststore cacerts上可用。
但是我不确定如何检查是否需要导入证书。如何检查来自网站的证书是否已经在默认的 java truststore \jre1.8\lib\security\cacerts 中?
您可以使用 java keytool 在 cacert 按键中检查(列出)证书。
keytool -list -v -keystore /path/to/cacerts
Run Code Online (Sandbox Code Playgroud)
keytool 必须在您的路径中,或者可以在您的 Java 安装(例如C:/Program Files (x86)/Java/jre1.8/bin/keytool.exe)的 bin 目录中找到。
只需尝试使用URL和连接到它HttpsURLConnection,至少可以获取响应代码,而不是花哨的信任管理器或任何东西。如果它是可信的,你就不会有问题。
你的术语是错误的。所有证书都是公开的。如果是CA 签署的证书,由其证书位于 中的CA签署cacerts,则不需要导入它。
小智 5
在 cacerts 中列出证书的一种简单方法是
keytool -v -list -cacerts -storepass changeit
Run Code Online (Sandbox Code Playgroud)