我连接到 VPN 以设置库存 API 以获取产品列表并且它工作正常。一旦我从网络服务获得结果,我就绑定到 UI。而且我还把 PayPal 与我的应用程序集成在一起,以便在我打电话付款时进行快速结帐,但我遇到了这个错误。我将 servlet 用于后端进程。任何人都可以说如何解决这个问题吗?
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
原文由 selladurai 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,您需要从您尝试连接的服务器获取公共证书。这可以通过多种方式完成,例如联系服务器管理员并请求它, 使用 OpenSSL 下载它,或者,因为这似乎是一个 HTTP 服务器,使用任何浏览器连接到它,查看页面的安全信息,并保存证书的副本。 (谷歌应该能够准确地告诉你为你的特定浏览器做什么。)
现在您已将证书保存在文件中,您需要将其添加到 JVM 的信任库中。在
$JAVA_HOME/jre/lib/security/
对于 JRE 或$JAVA_HOME/lib/security
对于 JDK,有一个名为cacerts
的文件要导入新证书,请以有权写入 cacerts 的用户身份运行 keytool:它很可能会要求您输入密码。 Java 附带的默认密码是
changeit
。几乎没有人改变它。完成这些相对简单的步骤后,您将可以安全地进行通信,并确保您正在与正确的服务器通信,并且只与正确的服务器通信(只要他们没有丢失私钥)。