我需要将cacerts文件的路径设置为trustStore,为此我这样做了:
String keystore = "src/main/resources/cacerts";
System.setProperty("javax.net.ssl.trustStore", keystore);
我想通过STS IDE (Spring boot)运行项目,但当我生成.war文件并从错误中运行它时,因为它找不到cacerts文件的路径,我如何设置该文件以使用.WAR?
我还试图在运行java -jar时删除System.setProperty并设置cacerts,但同样不起作用:
java -Djavax.net.ssl.trustStore=./cacerts -jar target/uaa-0.0.1-SNAPSHOT.war
发布于 2018-10-11 10:01:47
.war文件是单个压缩归档文件;其内容不是文件,不能在javax.net.ssl.trustStore属性中直接引用。
但是,您可以使用Class.getResourceAsStream将证书复制到新文件中:
Path keystore = Files.createTempFile(null, null);
try (InputStream stream = getClass().getResourceAsStream("/cacerts")) {
Files.copy(stream, keystore, StandardCopyOption.REPLACE_EXISTING);
}
System.setProperty("javax.net.ssl.trustStore", keystore.toString());
https://stackoverflow.com/questions/52749504
复制相似问题