Android模拟器无法信任Charles代理证书。
创始人
2024-10-09 06:31:16
0

如果Android模拟器无法信任Charles代理证书,可以尝试以下解决方法:

  1. 在Android模拟器中安装Charles代理证书
// 获取Charles代理证书的InputStream
InputStream certificateInputStream = context.getAssets().open("charles-proxy-certificate.pem");

// 保存证书到指定路径
File certificateFile = new File(Environment.getExternalStorageDirectory(), "charles-proxy-certificate.cer");
OutputStream certificateOutputStream = new FileOutputStream(certificateFile);
byte buffer[] = new byte[1024];
int length;
while ((length = certificateInputStream.read(buffer)) != -1) {
    certificateOutputStream.write(buffer, 0, length);
}
certificateOutputStream.flush();
certificateOutputStream.close();
certificateInputStream.close();

// 安装证书
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
intent.setData(Uri.fromParts("package", "com.android.settings", null));
startActivity(intent);
  1. 在Android模拟器中信任Charles代理证书
// 获取Charles代理证书的InputStream
InputStream certificateInputStream = context.getAssets().open("charles-proxy-certificate.pem");

// 创建KeyStore,并加载Charles代理证书
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, null);
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
Certificate certificate = certificateFactory.generateCertificate(certificateInputStream);
keyStore.setCertificateEntry("charles-proxy-certificate", certificate);

// 创建TrustManager,并使用KeyStore初始化
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();

// 创建SSLContext,并使用TrustManager初始化
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustManagers, null);

// 设置模拟器使用自定义的SSLContext
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

这些代码示例分别展示了两种解决方法,第一种是通过安装证书到Android模拟器的系统设置中,第二种是在代码中信任Charles代理证书。您可以根据具体情况选择适合的解决方法。

相关内容

热门资讯

一分钟带你了解!hhpoker... 一分钟带你了解!hhpoker透视工具(辅助挂)好像是真的有挂(有挂解惑辅助技巧)一、可以开透视的定...
玩家必看分享!佛手在线大菠萝为... 玩家必看分享!佛手在线大菠萝为什么都输(辅助挂)一直有挂(有挂详细辅助app)1、用户打开应用后不用...
今日重大通报!wpk德州局怎么... 今日重大通报!wpk德州局怎么透视(辅助挂)真是是有挂(果真有挂辅助攻略)1、起透看视 辅助软件价格...
推荐几款新版!uupoker有... 推荐几款新版!uupoker有透视吗(辅助挂)都是是有挂(有挂存在辅助技巧)辅助器是一种具有地方特色...
发现一款!hhpoker德州挂... 发现一款!hhpoker德州挂真的有吗(辅助挂)确实存在有挂(有挂存在辅助方法)1、打开软件启动之后...
一分钟了解!cloudpoke... 一分钟了解!cloudpoker怎么开挂(辅助挂)切实是有挂(有挂秘籍辅助技巧)1)有没有挂:进一步...
重大消息!拱趴大菠萝挂怎么安装... 重大消息!拱趴大菠萝挂怎么安装(辅助挂)都是真的是有挂(果真有挂辅助器)1、操作简单,无需手机版透视...
必备攻略!hhpkoer辅助挂... 必备攻略!hhpkoer辅助挂是真的吗(辅助挂)竟然有挂(证实有挂辅助技巧)必备攻略!hhpkoer...
每日必看推荐!德州透视是真的吗... 每日必看推荐!德州透视是真的吗(辅助挂)一贯有挂(有挂方法辅助攻略)1、打开软件启动之后找到中间准星...
一分钟了解!哈糖大菠萝辅助器(... 一分钟了解!哈糖大菠萝辅助器(辅助挂)真是真的是有挂(存在有挂辅助软件)1)辅助插件:进一步探索辅助...