5

Java で「ApnsService」を使用して IOS にプッシュ通知を送信しようとすると、次のようなエラーが発生しました。

 com.notnoop.exceptions.NetworkIOException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
    at com.notnoop.apns.internal.Utilities.wrapAndThrowAsRuntimeException(Utilities.java:269)
    at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:257)
    at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:230)
    at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46)
    at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:56)
    at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36)
    at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:45)
    at net.penril.notification.Initializer.notificationWorker(Initializer.java:189)
    at net.penril.notification.Initializer.Initial(Initializer.java:53)
    at net.penril.notification.PushNotificationCron$Job.run(PushNotificationCron.java:12)
    at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
    at java.io.OutputStream.write(OutputStream.java:75)
    at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:240)
    ... 10 more

サーバー側のソース コードについては、以下を参照してください。

 ApnsService service =
         APNS.newService()
        .withCert("src/net/notification/certificate.p12", "XXXXXX")                            
        .withSandboxDestination()
        .build();

 String payload = APNS.newPayload().alertBody(record.getSendMsg()).build();
 String token = record.getRegId();
 service.push(token, payload);

私が使用した証明書は、Javaキーストア形式またはその解決策に変換されていると思われますか?

4

1 に答える 1

1

これは証明書の問題です。

  1. 証明書のパスが正しいかどうかを確認してください。
  2. それ以外の場合、証明書 (certificate.p12) は無効です。
于 2014-05-15T16:13:28.797 に答える