我正在尝试使用 javapns 向IOS发送推送通知。密码存储(P12)文件的路径及其密码在代码中正确提及。
List < PushedNotification > NOTIFICATIONS = Push.payload(payload, "/home/sunil/Downloads/pushCertCurrent.p12", "password", false, "7964b31ec8b8a194f8c6b84924088d7b29bd98ecc28162e771f623d5ef0a39b6");
但在向上面代码中提到设备令牌作为最后一个参数的设备发送通知时,我收到 javax.net.ssl.SSLException:收到致命警报:internal_error
我已使用 -Djavax.net.debug = all 参数附加调试器,并在控制台中获取以下日志。
这是我得到的日志的一部分。
main, READ: TLSv1.2 Alert, length = 2
main, RECV TLSv1.2 ALERT: fatal, internal_error
%% Invalidated: [Session-1, SSL_RSA_WITH_3DES_EDE_CBC_SHA]
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLException: Received fatal alert: internal_error
javax.net.ssl.SSLException: Received fatal alert: internal_error
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:747)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
at java.io.OutputStream.write(OutputStream.java:75)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:427)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:366)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:336)
at javapns.Push.sendPayload(Push.java:178)
at javapns.Push.payload(Push.java:149)
at com.icube.apns.TestPushNotificationApp.main(TestPushNotificationApp.java:35)
17063 [main] INFO javapns.notification.PushNotificationManager - Attempt failed (Received fatal alert: internal_error)... trying again
main, called close()
main, called closeInternal(true)
18495 [main] DEBUG javapns.communication.ConnectionToAppleServer - Creating SSLSocket to gateway.sandbox.push.apple.com:2195
Allow unsafe renegotiation: false
Allow legacy hello messages: true
Is initial handshake: true
Is secure renegotiation: false
main, setSoTimeout(30000) called
26600 [main] DEBUG javapns.notification.PushNotificationManager - Reading responses
main, setSoTimeout(5000) called
请帮我弄清楚我做错了什么,这是我身边或苹果方面的问题。
答案 0 :(得分:0)
我发现了问题,这不是我的代码的问题。我刚刚重新生成了苹果的证书/密钥库(P12),它开始工作,生成密钥库可能存在一些问题。