Erreur de certificate Java APNS avec "DerInputStream.getLength (): longueurTag = 109, trop grand."

Lorsque j'essaie d'utiliser javascript APNS pour envoyer la notification push à iOS, j'ai reçu ce message d'erreur:

com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: DerInputStream.getLength (): longueurTag = 109, trop grande.

J'essaye déjà de convertir le certificate en échange d'informations personnelles (.p12) obtenant également la même erreur. Quelqu'un sait-il au problème et comment le résoudre?

Voici mon code java:

ApnsService service = APNS.newService() .withCert("src/net/notification/ck.jks", "******") .withSandboxDestination() .build(); Ssortingng payload = APNS.newPayload().alertBody(record.getSendMsg()).build(); Ssortingng token = record.getToken(); service.push(token, payload); 

Merci.

Cela se produit car le système pense que vous essayez de lire un autre type de file de keys et non JKS. Vous devrez spécifier que le file est JKS ou le convertir dans l'autre format.

Je vois que vous avez déjà essayé de convertir en .p12. Si vous l'avez fait correctement, il existe peut-être un autre format par défaut. Je recommand de savoir comment spécifier JKS à la place.

J'ai eu le même problème mais ma solution ne vous aidera que si vous utilisez Maven .

Le filtrage des ressources Maven (qui vous permet d'inclure des variables dans vos files de ressources) peut gâcher vos files binarys – et les certificates sont particulièrement sensibles aux modifications.

En général, le contenu binary ne doit pas être filtré. Mais je ne pouvais pas simplement désactiver le filtrage des ressources parce que j'ai des files .properties qui incluent des variables. La solution consistait donc à exclure les files .p12 du filtrage .

 <build> [...] <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/*.p12</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <includes> <include>**/*.p12</include> </includes> </resource> </resources> [...] </build> 

Pour en savoir plus sur le filtrage des ressources maven: http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

Si vous utilisez maven, cela se produit probablement à cause du filtrage Maven dans l'set de votre dossier de ressources. J'ai essayé la solution de Zsolt Safrany ci-dessus et n'ai pas fonctionné. Cependant, en lisant la documentation qu'il a partagée, j'ai trouvé ceci:

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1</version> <configuration> <nonFilteredFileExtensions> <nonFilteredFileExtension>p12</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin> 

Ce qui exclut les extensions binarys (ou toute extension que vous voulez) d'être filtré.