在我的 Java 应用程序中与贝宝服务器通信时出现 ssl 握手错误
Posted
技术标签:
【中文标题】在我的 Java 应用程序中与贝宝服务器通信时出现 ssl 握手错误【英文标题】:Getting ssl handshake error while communicating with paypal server in my java application 【发布时间】:2016-06-29 07:59:44 【问题描述】:我正在为我的 java 应用程序使用 paypal 沙盒帐户,并使用 centos 6.7 进行托管。当我运行应用程序时,我在与 paypal 帐户通信时遇到错误。
我收到如下错误,
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
【问题讨论】:
【参考方案1】:有一些安全更新。您需要为沙箱使用 TLS 1.2(更新将需要在稍后的日期应用到实时模式下的 Paypal)。
https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1766&viewlocale=en_US
这是路线图和不同的日期:
2016 年 1 月 14 日之后,沙盒 API 端点仅支持新标准(HTTP/1.1、TLS 1.2 和 SHA-256 证书)。这包括 www.sandbox.paypal.com 仅接受 HTTPS 用于 IPN 回发。
2016 年 1 月 31 日,生产开始使用新标准(2048 位,SHA-256)颁发 API 凭证证书。
2016 年 2 月 29 日,测试沙盒端点将被移除。
2016 年 3 月 17 日 新的 SFTP IP 地址添加到 reports.paypal.com 的 DNS。
2016 年 4 月 14 日,旧 SFTP IP 地址已从 reports.paypal.com 的 DNS 中删除。
2016 年 5 月 12 日旧的 SFTP IP 地址停止工作。
2016 年 6 月 17 日之后,生产 API 端点将开始迁移到新标准(HTTP/1.1、TLS 1.2 和 SHA-256 证书)
2016 年 9 月 30 日 IPN 回发到 www.paypal.com 只允许 HTTPS
2018 年 1 月 1 日所有证书 API 凭据必须已升级到新标准。
【讨论】:
谢谢@PP_Florian以上是关于在我的 Java 应用程序中与贝宝服务器通信时出现 ssl 握手错误的主要内容,如果未能解决你的问题,请参考以下文章
在生产系统上使用节点 SDK 处理贝宝付款时出现 401 invalid_client
应用程序在 Mac OS 上使用 MySQL 服务器时出现通信链路故障