System.setProperty(“ javax.net.ssl.trustStore”,“ classpath:file.jks”)无法正常工作

时间:2019-08-22 08:32:17

标签: spring-boot

System.setProperty(“ javax.net.ssl.trustStore”,“ classpath:file.jks”)不起作用,但如果我使用c:/file.jks这样的特定文件路径,则classpath:file.jks起作用。

2 个答案:

答案 0 :(得分:1)

javax.net.ssl.trustStore不是spring属性,它是Java固有的,并在启动时提供以初始化SSlContext。 Spring利用初始化的SSLContext。指定classpath:file.jks是spring的功能,不是本机Java的一部分;因此,这就是为什么它不起作用的原因。如果您的服务是服务器,则可以在应用程序属性中设置以下属性,以使用带有Spring的类路径资源来初始化SSLContext:

server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=pass
server.ssl.trust-store=classpath:trustStore.jks
server.ssl.trust-store-password=pass

这不适用于客户端模式,客户端模式将需要使用javax.net.ssl.trustStore来初始化SSLContext以获得传输层安全性。

答案 1 :(得分:0)

已解决 ClassPathResource资源=新的ClassPathResource(“ classpath:file.jks”); System.setProperty(“ javax.net.ssl.trustStore”,Paths.get(resource.getURI())。toString());