有点证书,我很难找到设置javax.net.ssl.trustStore
是添加还是覆盖默认JDK缓存的详细信息?
我的应用程序正在使用:
-Djavax.net.ssl.trustStore=my-truststore.jks
为AWS S3设置客户端(默认情况下,没有明确告诉它使用任何特定的证书(:
<bean name="s3Client" class="com.amazonaws.services.s3.AmazonS3ClientBuilder"
factory-method="defaultClient">
</bean>
如果javax.net.ssl.trustStore
添加到默认的JDK证书中,那么我应该没事,因为我相信它已经包含了我需要的证书,但我的信任库没有。(将AWS CA添加到jdk中:https://bugs.openjdk.java.net/browse/JDK-8233223)
如果javax.net.ssl.trustStore
-指定了自定义信任存储,则不会使用默认的信任存储(默认JDK cacerts(。
不确定术语";覆盖";这里是100%正确的。JDK的缓存仍然存在,您不更新它或其他什么。但你的定制的是用的。
我想说,不建议您修改默认的信任存储,因为它与JVM一起提供,并将随它更新。
相反,您可以制作一个副本并将证书添加到副本中,然后将此副本设置为自定义副本(使用javax.net.ssl.trustStore
(。
例如:
-
复制默认的(只需复制文件(
-
使用keytool将一些特定证书添加到副本
keytool -import -file /path/to/certificate.pem -alias NameYouWantToGiveOfYourCertificate -keystore /path/to/copy/of/default/truststore.jks -storepass changeit
这只是一个例子。你可能想使用其他工具,但希望这个想法很清楚:(