我正在构建一个应用程序,推送通知是使用工作灯的重要功能之一 在android中它工作正常。但在ios我没有收到任何通知。我在这个问题中添加了我的日志。
我甚至尝试用JDK 6中的jre \ lib \ security \ cacerts文件替换JDK 7中的jre \ lib \ security \ cacerts文件。但没有运气,它无法正常工作。 Sp请提供一些有用的解决方案。
[19/11/14 14:49:28:403 UTC] 00000044 com.notnoop.apns.internal.ApnsFeedbackConnection W Failed to retreive invalid devices
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
at com.notnoop.apns.internal.Utilities.parseFeedbackStreamRaw(Utilities.java:209)
at com.notnoop.apns.internal.Utilities.parseFeedbackStream(Utilities.java:219)
at com.notnoop.apns.internal.ApnsFeedbackConnection.getInactiveDevicesImpl(ApnsFeedbackConnection.java:105)
at com.notnoop.apns.internal.ApnsFeedbackConnection.getInactiveDevices(ApnsFeedbackConnection.java:74)
at com.notnoop.apns.internal.AbstractApnsService.getInactiveDevices(AbstractApnsService.java:132)
at com.notnoop.apns.internal.ApnsServiceImpl.getInactiveDevices(ApnsServiceImpl.java:36)
at com.ibm.pushworks.server.notification.apns.ApplicationConnection.getInactiveDevices(ApplicationConnection.java:123)
at com.ibm.pushworks.server.notification.apns.APNSMediator.maintain(APNSMediator.java:102)
at com.ibm.pushworks.server.notification.Dispatcher.maintain(Dispatcher.java:93)
at com.worklight.integration.notification.NotificationCleanupTask.step(NotificationCleanupTask.java:24)
at com.worklight.core.tasks.TaskThread.run(TaskThread.java:120)
Caused by: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
at com.ibm.jsse2.j.a(j.java:23)
at com.ibm.jsse2.qc.a(qc.java:190)
at com.ibm.jsse2.ab.a(ab.java:239)
at com.ibm.jsse2.ab.a(ab.java:136)
at com.ibm.jsse2.bb.a(bb.java:93)
at com.ibm.jsse2.bb.a(bb.java:230)
at com.ibm.jsse2.ab.r(ab.java:270)
at com.ibm.jsse2.ab.a(ab.java:259)
at com.ibm.jsse2.qc.a(qc.java:568)
at com.ibm.jsse2.qc.h(qc.java:759)
at com.ibm.jsse2.qc.a(qc.java:807)
at com.ibm.jsse2.e.read(e.java:18)
at com.ibm.jsse2.e.read(e.java:21)
at java.io.DataInputStream.readInt(DataInputStream.java:398)
at com.notnoop.apns.internal.Utilities.parseFeedbackStreamRaw(Utilities.java:200)
... 10 more
Caused by: com.ibm.jsse2.util.j: End user tried to act as a CA
at com.ibm.jsse2.util.i.a(i.java:11)
at com.ibm.jsse2.util.i.a(i.java:116)
at com.ibm.jsse2.util.i.b(i.java:95)
at com.ibm.jsse2.util.g.a(g.java:17)
at com.ibm.jsse2.yc.a(yc.java:73)
at com.ibm.jsse2.yc.a(yc.java:110)
at com.ibm.jsse2.yc.checkServerTrusted(yc.java:101)
at com.ibm.jsse2.bb.a(bb.java:19)
... 20 more
[19/11/14 14:49:28:403 UTC] 00000044 com.notnoop.apns.internal.ApnsFeedbackConnection E Couldn't get feedback connection
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
at com.notnoop.apns.internal.Utilities.parseFeedbackStreamRaw(Utilities.java:209)
at com.notnoop.apns.internal.Utilities.parseFeedbackStream(Utilities.java:219)
at com.notnoop.apns.internal.ApnsFeedbackConnection.getInactiveDevicesImpl(ApnsFeedbackConnection.java:105)
at com.notnoop.apns.internal.ApnsFeedbackConnection.getInactiveDevices(ApnsFeedbackConnection.java:74)
at com.notnoop.apns.internal.AbstractApnsService.getInactiveDevices(AbstractApnsService.java:132)
at com.notnoop.apns.internal.ApnsServiceImpl.getInactiveDevices(ApnsServiceImpl.java:36)
at com.ibm.pushworks.server.notification.apns.ApplicationConnection.getInactiveDevices(ApplicationConnection.java:123)
at com.ibm.pushworks.server.notification.apns.APNSMediator.maintain(APNSMediator.java:102)
at com.ibm.pushworks.server.notification.Dispatcher.maintain(Dispatcher.java:93)
at com.worklight.integration.notification.NotificationCleanupTask.step(NotificationCleanupTask.java:24)
at com.worklight.core.tasks.TaskThread.run(TaskThread.java:120)
Caused by: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
at com.ibm.jsse2.j.a(j.java:23)
at com.ibm.jsse2.qc.a(qc.java:190)
at com.ibm.jsse2.ab.a(ab.java:239)
at com.ibm.jsse2.ab.a(ab.java:136)
at com.ibm.jsse2.bb.a(bb.java:93)
at com.ibm.jsse2.bb.a(bb.java:230)
at com.ibm.jsse2.ab.r(ab.java:270)
at com.ibm.jsse2.ab.a(ab.java:259)
at com.ibm.jsse2.qc.a(qc.java:568)
at com.ibm.jsse2.qc.h(qc.java:759)
at com.ibm.jsse2.qc.a(qc.java:807)
at com.ibm.jsse2.e.read(e.java:18)
at com.ibm.jsse2.e.read(e.java:21)
at java.io.DataInputStream.readInt(DataInputStream.java:398)
at com.notnoop.apns.internal.Utilities.parseFeedbackStreamRaw(Utilities.java:200)
... 10 more
Caused by: com.ibm.jsse2.util.j: End user tried to act as a
答案 0 :(得分:0)
根据以下IBM tech note,如果根CA证书不包含BASIC CONSTRAINTS扩展名,则可能会出现此错误。
要解决此问题:
根据X509V3规范,任何根CA证书都应该是 包含BASIC CONSTRAINTS扩展名和CA标志的值 应设为TRUE。否则,证书被视为 终端实体证书而非CA证书。在SSL握手期间, 如果服务器证书链使用不具有的根CA证书 正确设置此扩展,握手可能会失败 客户端结束上面提到的错误消息。解决了 问题,请联系颁发证书的CA并获取服务器 证书链纠正。另一个潜在的解决方法是使用 IbmPKIX信任管理员而非客户端的IbmX509信任管理员 结束。使用该属性在java.security文件中设置trustmanager " ssl.TrustManagerFactory.algorithm"
查看以上内容是否与您的问题有关。