苹果推送通知出现SSLHandshakeException
问题描述:
环境:苹果推送通知出现SSLHandshakeException
- 的Windows Server 2012 R2
- JRE 1.8.0_101
- IBM WAS自由核心8.5.5.5
- IBM MFP 7.1.0.00.20150913-2345
启用APNS端口:
- gateway.sandbox.push.apple.com 2195
- gateway.push.apple.com 2195
与它连接远程登录验证。
iPhone构建与Eclipse工作室测试它的工作正常,但指向远程服务器相同的指示给出了以下错误。
[7/23/16 16:02:49:822 GST] 00000126 om.ibm.pushworks.server.notification.apns.ApnsConnectionImpl I Failed to send message Message(Id=2; Token=sdfsadfsdfsdfsdfsdf; Payload={"payload":"{\"tag\":\"Push.ALL\"}","aps":{"alert":{"action-loc-key":null,"body":"مرحبا كيف حالك اليوم؟"}}})... trying again after delay
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:49:838 GST] 00000125 om.ibm.pushworks.server.notification.apns.ApnsConnectionImpl I Failed to send message Message(Id=1; Token=sgaskjgsdkahdsfgksadhfgksdhfgsakdjfhgasdkhfds; Payload={"payload":"{\"tag\":\"Push.ALL\"}","aps":{"alert":{"action-loc-key":null,"body":"مرحبا كيف حالك اليوم؟"}}})... trying again after delay
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:501 GST] 00000125 om.ibm.pushworks.server.notification.apns.ApnsConnectionImpl E Couldn't send message after 3 retries.Message(Id=1; Token=sgaskjgsdkahdsfgksadhfgksdhfgsakdjfhgasdkhfds; Payload={"payload":"{\"tag\":\"Push.ALL\"}","aps":{"alert":{"action-loc-key":null,"body":"مرحبا كيف حالك اليوم؟"}}})
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:501 GST] 00000125 ibm.pushworks.server.notification.apns.ApplicationConnection E FPWSE1083E: Failed to send APNS notification with identifier 1, device token: sgaskjgsdkahdsfgksadhfgksdhfgsakdjfhgasdkhfds
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R Exception in thread "pool-5-thread-1"
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R com.notnoop.exceptions.NetworkIOException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at com.notnoop.apns.internal.Utilities.wrapAndThrowAsRuntimeException(Utilities.java:277)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:319)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.Alerts.getSSLException(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.Alerts.getSSLException(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at sun.security.ssl.AppOutputStream.write(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at java.io.OutputStream.write(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
[7/23/16 16:02:51:516 GST] 00000125 SystemErr R ... 5 more
[7/23/16 16:02:51:516 GST] 00000126 om.ibm.pushworks.server.notification.apns.ApnsConnectionImpl E Couldn't send message after 3 retries.Message(Id=2; Token=sdfsadfsdfsdfsdfsdf; Payload={"payload":"{\"tag\":\"Push.ALL\"}","aps":{"alert":{"action-loc-key":null,"body":"مرحبا كيف حالك اليوم؟"}}})
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 ibm.pushworks.server.notification.apns.ApplicationConnection E FPWSE1083E: Failed to send APNS notification with identifier 2, device token: sdfsadfsdfsdfsdfsdf
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R Exception in thread "pool-5-thread-2"
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R com.notnoop.exceptions.NetworkIOException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at com.notnoop.apns.internal.Utilities.wrapAndThrowAsRuntimeException(Utilities.java:277)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:319)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:292)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at com.notnoop.apns.internal.ApnsPooledConnection$2.run(ApnsPooledConnection.java:47)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at java.lang.Thread.run(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.Alerts.getSSLException(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.Alerts.getSSLException(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at sun.security.ssl.AppOutputStream.write(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at java.io.OutputStream.write(Unknown Source)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R at com.ibm.pushworks.server.notification.apns.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:302)
[7/23/16 16:02:51:516 GST] 00000126 SystemErr R ... 5 more
答
这通常是由于您的服务器安装在计算机(dev和prod)之间的Java版本不同所致。例如:如果不是所有的端口是开放的
也可能发生,例如对于反馈服务:
- feedback.push.apple.com,端口2196 feedback.sandbox.push.apple.com端口2196
feedback.push.apple.com,port 2196 feedback.sandbox.push.apple.com通过端口2196可以通过telnet访问。另外,我想了解Java版本在Dev和Prod中是否有所不同。如果这是真的,我应该使用什么版本,因为我已经尝试过JRE 7和JRE 8.但是仍然没有运气。我在调用推送通知时收到的异常,但在创建MFP运行时时却没有 – Karikalan