Apple Pay 证书更新 | SSLHandshakeException:收到致命警报:handshake_failure

Posted

技术标签:

【中文标题】Apple Pay 证书更新 | SSLHandshakeException:收到致命警报:handshake_failure【英文标题】:Apple Pay Cert Update | SSLHandshakeException: Received fatal alert: handshake_failure 【发布时间】:2021-06-20 06:22:00 【问题描述】:

我最近更新了我的“Apple Pay 支付处理”和“Apple Pay 商家身份”证书,现在收到错误消息:

javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287)
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252)
    at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
    .
    .
    .
Caused by: 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:2020)

我已经爬遍了所有论坛并尝试了以下解决方案:

1.TLS 1.2 启用并设置为默认值。 1.0 和 1.1 已禁用。

2.对于Java 8,为256解密添加了以下内容:JAVA_HOME/jre/lib/security http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

3.cert 添加到密钥库

但我仍然遇到同样的错误。还有什么可能导致这个问题?我很茫然,任何帮助将不胜感激!

【问题讨论】:

检查keytool -list -v - 您的客户端证书以及任何链证书是否出现在 PrivateKeyEntry(非 TrustedCertEntry)中? PS:从 8u151 开始的 Oracle Java 8 更新不需要下载策略,如较新页面 oracle.com/java/technologies/javase-jce-all-downloads.html 中所述。 【参考方案1】:

启用 java.net.debug 系统属性,它应该会为您提供有关握手失败的更多详细信息

【讨论】:

那是javax.net.debug。但是是的,请检查警报是响应 ClientHello 还是响应第二次航班。

以上是关于Apple Pay 证书更新 | SSLHandshakeException:收到致命警报:handshake_failure的主要内容,如果未能解决你的问题,请参考以下文章

Apple Pay准备工作-申请MerchantID及对应证书详细图文教程

Apple Pay

iOS Apple Pay

apple pay代码实现

iOS apple Pay 教程

iOS开发 Apple Pay