如何从java Jar文件项目加载keyStore和trustStore文件并使用它们来初始化SSLContext?

时间:2017-10-03 10:53:30

标签: java ssl

我使用ssl来保护客户端和服务器之间的RMI和JMS通信。我将keyStore和trustStore文件添加到我的项目的资源文件夹中。当项目通过Netbeans运行时,使用以下代码加载这些文件没有任何问题:

System.setProperty("javax.net.ssl.keyStore", "src/main/resources/certificates/keyStore.ks");
System.setProperty("javax.net.ssl.keyStorePassword", "pass");
System.setProperty("javax.net.ssl.trustStore", "src/main/resources/certificates/trustStore.ts");
System.setProperty("javax.net.ssl.trustStorePassword", "pass"); 

但是,当我通过其jar文件运行此项目时,无法加载这些文件。

是否有任何替代方法来配置SSL而不是使用System.setProperty()并指定keyStore和trustStore文件的路径?

此外,它适用于两种模式(通过Netbeans和Jar文件运行)。

1 个答案:

答案 0 :(得分:1)

src目录在运行时不存在。检查JAR文件的内容并亲自查看。你必须将它们放在其他地方,特别是在JAR文件中,因为这些属性引用的是文件,而不是JAR文件中的资源。