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

回到顶部