1

環境:蘋果推送通知出現SSLHandshakeException

  1. 的Windows Server 2012 R2
  2. JRE 1.8.0_101
  3. IBM WAS自由核心8.5.5.5
  4. IBM MFP 7.1.0.00.20150913-2345

啓用APNS端口:

  1. gateway.sandbox.push.apple.com 2195
  2. 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 

回答

0

這通常是由於您的服務器安裝在計算機(dev和prod)之間的Java版本不同所致。例如:如果不是所有的端口是開放的

也可能發生,例如對於反饋服務:

  • feedback.push.apple.com,端口2196 feedback.sandbox.push.apple.com端口2196
+0

feedback.push.apple.com,port 2196 feedback.sandbox.push.apple.com通過端口2196可以通過telnet訪問。另外,我想了解Java版本在Dev和Prod中是否有所不同。如果這是真的,我應該使用什麼版本,因爲我已經嘗試過JRE 7和JRE 8.但是仍然沒有運氣。我在調用推送通知時收到的異常,但在創建MFP運行時時卻沒有 – Karikalan