Android Studio中使用HTTPS访问离线Maven仓库失败问题排查
问题分析与解决方法
你的问题核心在于Android Studio和Gradle使用的信任库并非你修改的~/.config/Google/AndroidStudio2024.2/ssl/cacerts,而是其内嵌JDK自带的证书信任库,此外还需确认证书域名匹配性。以下是具体排查和解决步骤:
1. 确认Android Studio使用的JDK路径
Android Studio默认自带JBR(JetBrains Runtime),而非系统JDK或用户目录下的配置文件。你可以通过以下方式找到它的位置:
- 打开Android Studio,依次点击
File > Project Structure > SDK Location,查看JDK Location字段的路径(类似/home/xxx/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/242.2023997/jbr)。
2. 将自签名证书导入内嵌JDK的信任库
使用keytool命令将你的自签名证书导入到JDK的cacerts文件中,执行以下命令(替换路径和证书文件):
keytool -importcert -file /path/to/your/self-signed-cert.crt -keystore /path/to/jbr/lib/security/cacerts -alias maven-repo-cert
- 默认的
cacerts密码为changeit,输入即可完成导入。
3. 强制Gradle使用该JDK
在项目根目录的gradle.properties文件中添加以下配置,确保Gradle使用Android Studio的内嵌JDK:
org.gradle.java.home=/path/to/your/as/jbr
4. 验证证书域名匹配性
检查你的自签名证书的CN(通用名称)或SAN(主题备用名称)是否包含maven.google.com。因为你通过/etc/hosts将该域名重定向到仓库机器,证书必须匹配这个域名,否则会触发SSL域名不匹配错误。
额外说明
update-ca-certificates仅更新系统级信任库,Gradle默认不会使用系统证书,因此该操作对问题无帮助。- 你切换到HTTP能正常工作,说明仓库本身无问题,核心就是SSL证书的信任链未被Gradle的运行环境认可。
内容的提问来源于stack exchange,提问作者telandor
相关产品推荐
相关产品推荐

