安卓模拟器Zscaler证书错误及网络访问问题求助
Zscaler相关开发环境网络问题解决方案
问题梳理
- Android Studio无法下载Maven、Gradle等依赖插件
- 安卓模拟器安装Zscaler CA证书后,应用仍无法访问网络(含本地URL),抛出SSL错误:
android emulator issue - 1.primary error: 3 certificate: Issued to: CN=www.google.com;Issued by: CN=Zscaler Intermediate Root CA (zscaler.net) (t)\ ,OU=Zscaler Inc.,O=Zscaler Inc.,ST=California,C=US; on URL: https://www.google.com/** 2.ssl_client_socket_impl.cc(996) handshake failed - Zscaler阻止NPM模块下载
- 已尝试操作:模拟器安装Zscaler证书、通过DNS命令启动模拟器,问题未解决
一、Android Studio(Maven/Gradle)适配配置
1. 配置全局代理
- 打开
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy - 选择
Manual proxy configuration,填写公司提供的Zscaler代理地址和端口(格式如http://zscaler-proxy:8080) - 在
No proxy for栏添加本地域名:127.0.0.1,localhost,*.your-local-domain.com,避免代理本地请求 - 若公司提供PAC文件,可选择
Automatic proxy configuration并填入PAC地址
2. 配置Gradle单独代理
在项目根目录的gradle.properties中添加以下内容:
systemProp.http.proxyHost=zscaler-proxy-address systemProp.http.proxyPort=proxy-port systemProp.https.proxyHost=zscaler-proxy-address systemProp.https.proxyPort=proxy-port systemProp.http.nonProxyHosts=127.0.0.1|localhost|*.your-local-domain.com systemProp.https.nonProxyHosts=127.0.0.1|localhost|*.your-local-domain.com
3. 导入Zscaler证书到JDK信任库
- 获取Zscaler根CA证书(.crt格式,联系公司IT获取)
- 执行以下命令导入到Android Studio使用的JDK信任库(默认密码为
changeit):
keytool -import -alias zscaler-root -file /path/to/zscaler-root.crt -keystore /path/to/android-studio-jdk/jre/lib/security/cacerts
二、安卓模拟器SSL问题修复
1. 正确安装系统级证书
模拟器仅信任系统目录下的证书,需按以下步骤操作:
- 生成证书哈希值:
openssl x509 -inform PEM -subject_hash_old -in zscaler.crt | head -1
- 将证书重命名为
[哈希值].0(如abc123.0) - 推送证书到模拟器系统目录:
adb root adb remount adb push /path/to/[哈希值].0 /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/[哈希值].0 adb reboot
2. 配置模拟器代理
- 打开模拟器
Settings > Network & Internet > Wi-Fi - 长按当前Wi-Fi连接,选择
Modify network - 勾选
Advanced options,设置Proxy为Manual,填入Zscaler代理地址和端口
3. 启动模拟器时指定代理
在AVD管理器中编辑目标模拟器,在Additional command line options中添加:
-no-snapstorage -http-proxy http://zscaler-proxy:port
三、NPM模块下载适配
1. 配置NPM代理
执行以下命令:
npm config set proxy http://zscaler-proxy:port npm config set https-proxy http://zscaler-proxy:port # 若证书验证仍失败,可临时关闭严格SSL验证(不建议长期使用) npm config set strict-ssl false
2. 导入Zscaler证书到Node.js信任库
- 查看Node.js信任证书文件路径:
node -p "require('ssl-root-cas').path"
- 将Zscaler证书内容直接追加到该文件中
关于绕过Zscaler的说明
绕过Zscaler违反公司网络安全政策,会触发IT监控,绝对不建议尝试。若上述配置后仍无法解决问题,直接联系公司IT部门,申请开发环境专属的代理配置或证书白名单。
内容的提问来源于stack exchange,提问作者Sheetal
相关产品推荐
相关产品推荐

