java - 如何在不安装到 keystore 的情况下连接到 SSL 证书 Web 服务?

标签 java web-services ssl

我正在尝试连接到需要 PKCS12 证书的 SSL 网络服务。

问题:是否可以不将证书安装到本地 keystore ,而是在运行时动态加载?

我试过如下:

static {
        KeyStore.getInstance("PKCS12").load(this.getClass().getClassLoader()
           .getResourceAsStream("myfile.p12"), "password".toCharArray());
}

但是结果:

sun.security.validator.ValidatorException: PKIX path building failed. sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

显然它不起作用。但是为什么?

旁注:链接的 SO 问题没有回答我的问题,因为它针对 trustStore,但我的问题是关于 keystore

最佳答案

问题与这段代码无关。您的truststore 不信任服务器的 证书。如果它是自签名的,则必须导入它。更好的是,让它由 CA 签名。

关于java - 如何在不安装到 keystore 的情况下连接到 SSL 证书 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35887985/

相关文章:

java - 我想在 ping 主机后获取 ping 执行时间和结果字符串

c# - WCF和错误处理,最佳实践

尝试用 Knife 创建 EC2 服务器时出现 SSLError

ssl - 错误加载扩展部分 v3_ca [centos7]

java - Log4J - 自动刷新日志文件,可能吗?

java - 我应该在 if-else block 中抛出异常吗?

java - 使用 Jax 生成 Proxy Web 服务客户端时出错

ios - Restkit 和 SSL 证书错误

java - 在更新删除和插入时将电话簿联系人与我的应用程序同步的最佳方式

java - 限制 Spring Webservice 并发调用