Android解决java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

我们使用android https验证的的时候出现如下错误:

03-17 10:47:01.941: W/System.err(12702): 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

03-17 10:47:01.942: W/System.err(12702): at com.android.org.conscrypt.OpenSSLX509CertificateFactory.engineGenerateCertificate(OpenSSLX509CertificateFactory.java:272)


解决办法:将server.crt 格式证书 改为server.cer证书,换句话说重新生成server.cer证书


为什么这样改了?

CER is an X.509 certificate in binary form, DER encoded.
CRT is a binary X.509 certificate, encapsulated in text (base-64) encoding.

It is not the same encoding.

然而我们android 大都支持  .cer 格式证书

你可能感兴趣的:(android,https)