CertificateException - OpenSSLX509CertificateFactory $ ParsingException
我在我的Android项目中,我连接到安全服务器的代码如下。 我收到解析错误。 [粘贴下面]。如果有人知道这个例外,请让我知道。提前致谢。
代码段
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();
}
错误
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):在java.security.cert.CertificateFactory.generateCertificate( CertificateFactory.java:195)
回答:
有两个问题 1.似乎是错误的文件格式。对于openssl是DER和PEM类型。尝试将您的cert.p12转换为另一种格式($ x509 -in cert.p12 -inform PEM -out output.crt -outform DER)。 2.也许cert.p12不是X509格式,但pkcs12是。详细了解这些格式并检查您的文件。
回答:
我改变了这一行,以包括 “BC” 提供商和错误消失:getInstance("X.509", "BC")
以上是 CertificateException - OpenSSLX509CertificateFactory $ ParsingException 的全部内容, 来源链接: utcz.com/qa/265410.html