当前位置: 首页 > 知识库问答 >
问题:

PKIX路径构建失败:我向carcert添加了证书,但仍然失败

戎洛华
2023-03-14

我使用PKIX路径构建失败程序面临这个问题,这是我尝试过的...

>

  • 我访问了我试图访问的目标URL

     (eg -> https://localdevchannel.master.info/Gate/CustomerManagement/rest/resources/search)
    

    我单击“锁定”图标并导出证书。

    我在命令下面跑...

    keytools-import cert-filesec.cer-store pass change eit-keystore"C:/Program Files/Java /jdk-11.0.2/jdk-11.0.2/lib/security/cacerts"-alias secCert

    已成功放置证书。但我仍然面临着这个问题。请帮忙,我做错了什么?

    javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    
  • 共有1个答案

    阴飞星
    2023-03-14

    好啊

    如果您的证书已过期,或存储中不存在证书,或您更新了另一个cacert文件,并且您的java/和/或应用程序正在查看/使用另一个,则会出现此异常

    1-检查您的cacert文件以实际查看CERT是否已添加其别名。

    JDK/jre/bin中,您可以找到keytool。exe您可以如下调用它来读取cacerts文件:

    susan@SE-00018098 /c/Program Files/Java/jdk1.7.0_80/jre/bin
    
    $ keytool.exe -list -keystore ../lib/security/cacerts
    Enter keystore password:
    Keystore type: jks
    Keystore provider: SUN
    
    Your keystore contains 92 entries
    
    digicertassuredidrootca, 2008-apr-16, trustedCertEntry,
    Certificate fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
    trustcenterclass2caii, 2008-apr-29, trustedCertEntry,
    Certificate fingerprint (SHA1): AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6E
    thawtepremiumserverca, 2009-dec-11, trustedCertEntry,
    Certificate fingerprint (SHA1): E0:AB:05:94:20:72:54:93:05:60:62:02:36:70:F7:CD:2E:FC:66:66
    swisssignplatinumg2ca, 2008-okt-31, trustedCertEntry,
    

    2-如果是,是否过期?检查日期。

    3-确认你的应用程序/java运行时是否正在使用你刚刚更新的cacert文件(你是否安装了多个java版本?你的(java\u主页)是什么)

    ======== 编辑

    如果证书存在,并且没有过期,并且您百分之百确定它是正确的证书,那么您的应用程序/或容器可能没有查看cacert文件。

    尝试下面的黑客:我认为这是一种黑客行为,因为您正在硬编码一条路径,当您部署到另一台服务器上时,该路径可能/不存在。

    有很多方法可以创建自己的truststore和keystore存储库,并将它们包含在应用程序中,然后您可以将它们合并到代码中,但请尝试一下,看看其余的代码是否有效。

    在https连接代码之前设置系统属性:

    System.setProperty("javax.net.ssl.trustStore", "java_home_path/jre/lib/security/cacerts");  
    

    替换为cacerts文件的正确路径,然后重试。

     类似资料:
    • 我刚刚为我们的域名购买了一个新的通配符ssl证书,因为我们的旧证书即将到期。我已经将它安装在我们的cas服务器和应用服务器上,但是我在我们的应用服务器上得到以下堆栈跟踪: 两个服务器上的证书是相同的。

    • 我有一个问题,也是在这里描述的。我创建了一个证书并将其添加到tomcat的密钥库中,然后将其复制到信任库中。然而,不知何故,我还是得到了这个错误。 我所做的: 1)keytool-genkey-alias cas-keyalg RSA-keystore cas.keystore-storePass changeit keytool-list-v-keystore“C:\程序文件\java\jdk1

    • Sun.Security.Validator.ValidatorException:PKIX路径生成失败:Sun.Security.Provider.CertPath.SunCertPathBuilderException:找不到请求目标的有效证书路径;嵌套异常为javax.net.ssl.sslHandShakeException:Sun.Security.Validator.Validator

    • 我正在使用一个自定义的工件库来部署我的项目。当我在本地机器上工作时,这很好,但我已经启用了Gitlab的AutoDevOps功能,并将我的项目与Kubernetes集群集成。 kubernetes集群由rancher管理。 问题是在Gitlab上运行的构建失败并出现以下错误: 插件org.apache.maven。插件:maven resources插件:2.6或其一个依赖项无法解析:无法读取or

    • 当我从Java中的Windows(JDBC)连接Linux Oracle服务器时遇到以下错误,请问如何解决这个错误。 java.sql.SqlRecoverableException:Io异常:Sun.Security.Validator.ValidatorException:PKIX路径构建失败:Sun.Security.Provider.CertPath.SunCertPathBuilderE

    • 问题内容: 我正在与一个名为CommWeb的商户帐户集成,并向其URL(https://migs.mastercard.com.au/vpcdps)发送一个SSL帖子。当我尝试发送帖子时,出现以下异常: 执行该帖子的代码(我没有写过,并且已经存在于我们的代码库中)是: 商户帐户集成的文档对证书一无所知。他们确实提供了一些似乎盲目接受证书的示例JSP代码: 我们的Web应用程序有一个密钥库,我尝试使