Error de certificado APNS de Java con “DerInputStream.getLength (): lengthTag = 109, demasiado grande”.

Cuando bash usar el APNS de java para enviar la notificación de inserción a iOS, recibí este mensaje de error:

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

Ya intenté convertir el certificado a Intercambio de información personal (.p12) y también obtengo el mismo error. ¿Alguien sabe al problema y cómo resolverlo?

Aquí está mi código java:

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

Gracias.

Esto ocurre porque el sistema cree que está intentando leer un tipo diferente de almacén de claves y no JKS. Deberá especificar que el archivo es JKS o convertirlo al otro formato.

Veo que ya has intentado convertir a .p12. Si lo hiciste correctamente, quizás haya algún otro formato predeterminado. Recomiendo descubrir cómo especificar JKS en su lugar.

Tuve el mismo problema, pero mi solución te ayudará solo si estás utilizando maven .

El filtrado de recursos de Maven (que le permite incluir variables en sus archivos de recursos) puede alterar sus archivos binarios, y los certificados son especialmente sensibles a la modificación.

En general, el contenido binario no debe ser filtrado. Pero no podía simplemente deshabilitar el filtrado de recursos porque tengo algunos archivos .properties que incluyen variables. Así que la solución fue excluir los archivos .p12 del filtrado .

  [...]   src/main/resources true  **/*.p12    src/main/resources false  **/*.p12    [...]  

Más información sobre el filtrado de recursos de maven: http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

Si usa maven, es probable que esto ocurra debido al filtrado de Maven en toda la carpeta de recursos. He intentado la solución Zsolt Safrany anterior y no funcionó. Sin embargo, leyendo la documentación que compartió, he encontrado esto:

  org.apache.maven.plugins maven-resources-plugin 3.0.1   p12    

Lo que excluye que las extensiones binarias (o cualquier extensión que desee) sean filtradas.