【问题标题】:javax.net.ssl.SSLHandshakeExceptionjavax.net.ssl.SSLHandshakeException
【发布时间】:2013-10-03 12:11:07
【问题描述】:

最近,我们的一个 Java 应用程序出现问题,该应用程序试图运行受 SSL 保护的亚马逊负载均衡器 Web 服务,其证书由 GoDaddy 签名。我们没有在证书链框中复制并粘贴公钥证书链文件(PEM 编码)的内容。现在我们看到了以下错误:

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

。有没有办法解决这个异常?

【问题讨论】:

    标签: java amazon-ec2 webservice-client sslhandshakeexception


    【解决方案1】:

    此错误意味着您的 java 密钥库没有您尝试连接的服务的 ssl 证书。 您需要将 GoDaddy/Intermediate CA 的公共证书添加到您的 java 密钥库。 您可以为此使用 keytool 命令

    【讨论】:

    • 它实际上是一个TrustStore,他应该将证书导入其中。查看 KeyStore 和 TrustStore stackoverflow.com/questions/318441/… 之间的区别
    • 是的 TrustStore 和 keyStore 是逻辑名称,密钥库保存 pvt 密钥,TrustStore 包含托管服务器信任的公共证书。但是同一个存储可以同时用作密钥库和信任库
    • @coder you mean Copy and paste the public key of Intermediate certificate (PEM-encoded) in the Certificate Chain box?。密钥库包含私钥,以及带有相应公钥的证书。我们只能将此私钥和公钥添加到 amazone ec2 中。
    • 对密钥库和信任库使用单个文件是不好的做法。一个是非常私密的,另一个是公开的。不要把它们混为一谈。
    • @muneesmajid:需要明确的是,有一个亚马逊负载均衡器网络服务可以通过 ssl 访问。您有一个 Java 应用程序在尝试访问该 Web 服务的某台机器上运行,并且为此获得了 sslhandshake 异常。抱歉,我不清楚什么是证书链框。 ?
    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2018-12-16
    • 2014-09-24
    相关资源
    最近更新 更多