2

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

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

但是当我运行这段代码时,它给了我以下的逃避。

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

我做错了什么?

4

2 回答 2

5

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

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

当然,所有与 ray 教程中解释的配置门户相关的事情都必须正确完成。

这就是解决我的 sslHandShakeException 的原因。我不知道您是否遇到完全相同的问题,但希望确实如此,并且此信息可以帮助您。

于 2012-10-16T07:39:47.183 回答
2

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

于 2012-10-26T23:17:19.847 回答