我是新手。我在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”。
我做错了什么?
答案 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推送通知服务”,然后单击“开发”或“产品”的“配置”按钮。这将引导您完成为此特定应用程序的推送通知请求证书的过程。