gpt4 book ai didi

android - com.android.org.conscrypt.OpenSSLX509Certificate 无法转换为 java.security.Certificate

转载 作者:太空宇宙 更新时间:2023-11-03 14:52:52 31 4
gpt4 key购买 nike

        CertificateFactory cf = CertificateFactory.getInstance("X.509");
AssetManager assetManager = MyApp.getAppContext().getAssets();
InputStream caInput = assetManager.open("cert.pem");
Certificate ca = null;
try {
ca = (Certificate) cf.generateCertificate(caInput);
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} catch(Exception er)
{
System.out.println("ssdad222a "+er.getMessage());
}finally {
caInput.close();
}
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", (java.security.cert.Certificate) ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
return context;

所以我得到 09-10 22:18:35.329: I/System.out(18269): ssdad222a com.android.org.conscrypt.OpenSSLX509Certificate cannot be cast to java.security.Certificate ,每当我使用证书时出错。我得到的 pem 或 cert.der 文件。错误是什么,解决方法是什么?

最佳答案

从错误消息来看,您似乎正在导入已弃用的 java.security.Certificate 类。这应该更改为 java.security.cert.Certificate。但是,您可以直接转换为 X509Certificate,因为您正在请求“X.509”CertificateFactory 的实例。它不会返回 X509Certificate 实例以外的任何内容。

关于android - com.android.org.conscrypt.OpenSSLX509Certificate 无法转换为 java.security.Certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32510064/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com