连接到Apple推送通知服务器时出现SSLHandshakeException

时间:2012-10-04 07:48:22

标签: java api ssl-certificate apple-push-notifications

我是新手。我在here中生成了证书签名请求。然后我使用.p12格式的证书文件通过java-apns与Apple推送通知服务器建立连接。这是我用过的代码。

ApnsService service =
            APNS.newService()
                    .withCert("/home/ApplePush/apple.p12", "abc")
                    .withProductionDestination()
                    .build();
    service.testConnection();

但是当我运行这段代码时,它会给我以下的esception。

“线程中的异常”main“com.notnoop.exceptions.NetworkIOException:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure”。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您好我有完全相同的问题。和你一样,我遵循了raywenderlinch教程,并在后端使用了java-apns库与APNS进行通信。本教程中的证书主要针对php,他们正在使用.pem文件做一些事情,这是java-apns调用所不需要的。

我正在使用您在本教程开头创建的第一个.p12证书来提供java-apns。那是我的错。您需要做的是从apple(aps_developer_identity.cer)生成的证书中生成.p12。双击它并在密钥库管理器mac app导出为.p12使用一些密码并尝试使用此.p12和密码连接java-apns。

当然,必须正确完成光线教程中解释的与配置门户相关的所有内容。

这解决了我的sslHandShakeException。我不知道你是否有完全相同的问题,但希望是这样,这些信息可以帮到你。

答案 1 :(得分:1)

如果您使用错误的证书,即配置门户中的“证书”下的证书,而不是您针对给定应用程序的通知专门请求的证书,则会发生这种情况。在“应用ID”下 - > (您想要的具体应用) - >配置,选中“启用Apple推送通知服务”,然后单击“开发”或“产品”的“配置”按钮。这将引导您完成为此特定应用程序的推送通知请求证书的过程。