安卓11 自动安卓.cer证书代码
时间: 2024-04-07 17:22:11 浏览: 109
Microsoft Root Certificate Authority 2010 2011.cer证书
以下是在 Android 11 上自动安装 CA 证书的示例代码:
```java
// 加载证书文件
InputStream caInput = new BufferedInputStream(new FileInputStream("ca.cer"));
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
caInput.close();
}
// 添加证书到系统信任列表
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
// 创建 SSLContext
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);
// 使用 SSLContext 创建 HttpsURLConnection
URL url = new URL("https://www.example.com/");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(sslContext.getSocketFactory());
conn.setRequestMethod("GET");
conn.connect();
// 输出响应结果
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
in.close();
```
请注意,这段代码中的 `ca.cer` 文件应该放在应用的资源文件夹中,或者是从服务器上下载。另外,由于 Android 11 开始,应用无法在其本身的存储空间之外直接写入文件,因此如果您需要将证书保存在外部存储器上,请先获得相应的权限。
阅读全文