android - verificar - CertificateException-OpenSSLX509CertificateFactory $ ParsingException
verificar ssl (2)
Tiene dos problemas 1. Parece ser un formato de archivo incorrecto. Para openssl threre es tipo DER y PEM. Intenta convertir tu cert.p12 a otro formato ($ x509 -en cert.p12 -inform PEM -out output.crt -outform DER). 2. Tal vez cert.p12 no es un formato X509, pero pkcs12 sí lo es. Lea más sobre esos formatos y verifique sus archivos.
Tengo el siguiente código en mi proyecto de Android donde me estoy conectando al servidor seguro. Estoy obteniendo el error de análisis. [pegado abajo]. Si alguien conoce esta excepción, por favor avíseme. Gracias por adelantado.
Fragmento de código
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = new BufferedInputStream(new FileInputStream("/storage/emulated/0/cert.p12"));
Certificate ca;
try {
ca = cf.generateCertificate(caInput); // error at this line
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
caInput.close();
}
Error
01-15 17:01:00.107: W/System.err(14932): java.security.cert.CertificateException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
01-15 17:01:00.107: W/System.err(14932): at com.android.org.conscrypt.OpenSSLX509CertificateFactory.engineGenerateCertificate(OpenSSLX509CertificateFactory.java:272)
01-15 17: 01: 00.107: W / System.err (14932): en java.security.cert.CertificateFactory.generateCertificate (CertificateFactory.java:195)
Cambié esta línea para incluir el proveedor "BC" y el error desapareció: getInstance("X.509", "BC")