2012-10-04 120 views
2

我是新來這個。我生成了證書籤名請求,如here。然後我使用.p12格式的證書文件通過java-apns與Apple推送通知服務器建立連接。這是我用過的代碼。SSLHandshakeException當連接到蘋果推送通知服務器

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

嗨,我有完全相同的問題。和你一樣,我遵循了raywenderlinch教程,並在後端使用了java-apns庫來與APNS進行通信。本教程中的證書事項專注於php,他們正在做一些.pem文件,這對於java-apns調用並不需要。

我正在爲本教程開始時創建的第一個.p12證書提供java-apns。這是我的錯誤。你需要做的是從apple生成的證書(aps_developer_identity.cer)中生成.p12。雙擊它並在密鑰倉庫管理器的Mac應用程序導出爲.p12使用一些密碼,並嘗試使用此.p12和密碼與java-apns連接。

當然,在射線教程中解釋的與配置門戶相關的所有內容都必須正確完成。

那是什麼解決了我的sslHandShakeException。我不知道你是否有完全相同的問題,但希望它是,這些信息可以幫助你。

1

如果您使用錯誤的證書,即在供應門戶中的「證書」下的證書,而不是專門針對給定應用的通知請求的證書,則會發生這種情況。在「應用程序ID」 - >(您想要的特定應用程序) - >配置下,勾選「啓用Apple推送通知服務」,然後單擊Dev或Prod的「配置」按鈕。這將帶您完成爲特定應用的推送通知請求證書的過程。