2011-12-05 26 views
6

Java APNS(オープンソースプロジェクト)を使用して、iPhoneにプッシュ通知を送信しようとしています。 しかし、私はエラーが発生しています。Java APNS(Apple Push Notification Service)エラー

私は証明書として.pemファイルを使用しました。これは.p12ファイルですか?違いはわかりませんが、私はオンラインのどこかでこれらのファイル形式の違いがあると読んでいます。ここで

はコードです:

ApnsService service = 
     APNS.newService() 
      .withCert("gpk.pem", "XXXX") 
      .withSandboxDestination() 
      .build(); 


    String payload = APNS.newPayload().alertBody("Can't be simpler than this!").build(); 
    String token = "theTokenIsRemoveHere"; 
    service.push(token, payload); 

そして、ここではエラーです:

Exception in thread "main" com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: toDerInputStream rejects tag type 45 
    at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:102) 
    at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:161) 
    at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:124) 
    at com.geomobsters.cli.ApnsClient.main(ApnsClient.java:12) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.io.IOException: toDerInputStream rejects tag type 45 
    at sun.security.util.DerValue.toDerInputStream(DerValue.java:806) 
    at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1201) 
    at java.security.KeyStore.load(KeyStore.java:1185) 
    at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:87) 
    ... 8 more 

答えて

10

のJava APNSは.P12ファイルとして証明書を期待しています。

あなたのキーチェーンの秘密鍵と証明書の両方をチェックする必要があります。 右クリック - >「輸出2つのファイル」 と あなたがそれにパスワードを与える必要があり、このパスワードあなたがここにあなたのXXXX

幸運

として

.withCert("gpk.pem", "XXXX") 

を入力する必要がそれらをエクスポート

EDIT:

.P12 - PKCS#12は、証明書にパスワード .PEMで保存された秘密鍵が含まれています - Base64でエンコードされた証明書、lockedby „-----BEGIN CERTIFICATE-----“ and „-----END CERTIFICATE-----“

関連する問題