java - Java 中的客户端 SSL 证书 : PKIX path building failed

标签 java ssl

我有一个需要客户端证书的网络服务,我使用以下命令在运行时加载该证书:

    System.setProperty("javax.net.ssl.keyStore", keystore.getAbsolutePath());
    System.setProperty("javax.net.ssl.keyStorePassword", "password");
    System.setProperty("javax.net.ssl.keyStoreType", "jks");


    System.setProperty("javax.net.ssl.trustStore", cafile.getAbsolutePath());
    System.setProperty("javax.net.ssl.trustStorePassword", "password");

但是,现在我通过常规 https(没有任何客户端证书)连接的其他网络服务已损坏:

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

有没有一种方法可以在运行时加载证书而不破坏现有的 https 网络服务?

最佳答案

我为类似的问题尝试了很久,并且正在工作。

System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); 
Security.addProvider (new com.sun.net.ssl.internal.ssl.Provider()); 
System.setProperty("https.protocols", "SSLv3,TLSv1"); 
System.setProperty("javax.net.ssl.trustStore", ""); 
System.setProperty("javax.net.ssl.trustStorePassword", ""); 
System.setProperty("javax.net.ssl.trustStoreType", "");
Security.ssl.allowUnsafeRenegotiation", "true");
System.setProperty("javax.net.ssl.keyStore", ""); 
System.setProperty("javax.net.ssl.keyStorePassword", ""); 
System.setProperty("javax.net.ssl.keyStoreType", ""); 
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); 

同样可以通过在您正在使用的应用程序服务器中配置 trustorekeystore 来实现。

问题是证书没有正确导入。 我希望下面的链接对您有所帮助。

Link1

Link2

关于java - Java 中的客户端 SSL 证书 : PKIX path building failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24745299/

相关文章:

php - TCPDF:getimagesize():SSL 操作失败,代码为 1 错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败

java - 基于 JPA 的类的命令行

java - JPA CriteryQuery 内连接 - IllegalStateException

java - HashMap replace 和 put 的区别

java - 如何使用 MariaDB Connector/J 与 MySQL 建立 SSL 连接?

tomcat - 将 Thawte 试用证书导入 Java keystore

php - Curl 无法在 PHP 中使用 Filckr API 获取本地颁发者证书

某些站点上的 Java 8 https 连接失败

java - 如何添加来自 flickr 的照片?

java - 在 jmeter.bat 文件中,NewSize 和 MaxNewSize 的用途是什么?