如何从Java Jar文件项目加载密钥库和信任店文件,并使用它们来初始化SSLContext



我使用SSL来保护客户端和服务器之间的RMI和JMS通信。我将密钥库和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()并指定通往密钥库和TrustStore文件的路径?

另外,它在两种模式下都起作用(通过Netbeans和Jar File运行)。

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

最新更新