我的本地开发机器上有一个有效的密钥库,其中包含用于通过 HTTPS 访问 Web 服务的证书。
我通过以下方式在我的项目中访问此密钥库:
System.setProperty("javax.net.ssl.truststore", "C:\\<workspaceprojectPath>\\SIPkeystore\\truststore.jks"); // sollte wohl auch ohne Keystore klappen
System.setProperty("javax.net.ssl.keyStore", "C:\\<workspaceprojectPath>\\SIPkeystore\\SIPkeystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "SECRET");
现在我想从另一个项目访问该证书。在那里,我提供了另一个(本地)项目目录中密钥库的相同(完整)路径。
显然,jvm 仍然可以找到路径并且正在设置属性,但是在访问 Web 服务时,我收到了相同的错误消息,就好像我根本没有添加密钥库一样。
尝试运行应用程序时,我得到一个
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested target
是否有可能复制现有的密钥库?当我们将应用程序部署到我们的服务器时,这也很重要。该应用程序将作为独立 jar 运行。(没有网络服务器)
编辑: 好的,复制密钥库似乎不是问题,因为我可以在使用原始密钥库文件的本地副本时运行原始应用程序。好像是配置问题。