2011-12-05 22 views
6

Sto tentando di utilizzare Java APNS, un progetto open source, per inviare notifiche push agli iPhone. Sto ricevendo un errore, comunque.Errore APNS Java (Apple Push Notification Service)

Ho usato un file .pem come certificato. Questo dovrebbe essere un file .p12? Non sono sicuro di quale sia la differenza, ma ho letto da qualche parte online che esiste una differenza tra questi formati di file.

Ecco il codice:

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); 

E qui è l'errore:

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 

risposta

10

Java APNS si aspetta il CERT come p12.

È necessario controllare sia privatekey e certificato nel portachiavi. poi click destro-> "Export 2 file" ed esportare li si deve dare una password, questa password è necessario digitare qui

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

come XXXX

buona fortuna

MODIFICA:

.P12 - PKCS # 12, contiene certificati e chiavi private salvate con una password .PEM - è certificato con codifica Base64, bloccato da „-----BEGIN CERTIFICATE-----“ and „-----END CERTIFICATE-----“

Problemi correlati