内网Android Studio无法更新下载maven库(证书错
在编辑Android Studio 时提示一下错误
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect
显示无法同步
解决方法:
1.打开https://dl.google.com/dl/android/maven2
image.png2.导出.cer 证书
image.pngimage.png
image.png
image.png
image.png
image.png
使用CMD
3. 更新jdk中的cacerts证书
3.1将 .cer 中的公钥证书导入Android Studio中的cacerts,命令行下运行:
cd C:\Android\AndroidStudio\jre\lib\security
执行运行先备份cacerts:
copy /A/B cacerts cacerts.bk
后续运行,请先还原备份的cacerts:
copy /B/A cacerts.bk cacerts
3.2导入 .cer 文件到cacerts文件
....\bin\keytool.exe -import -keystore cacerts -file aliyun.cer
提示密码请输入: changeit
确认请输入 Y (如果是中文提示请输入: 是)
注:如果Android Studio设置使用系统JDK而不是它自带的JDK (AS默认使用自带JDK),可用同样的方式, 参照 1- 2 -3,将 .cer 中的公钥证书导入系统JDK中的cacerts,如:
cd C:\Program Files\Java\jdk-11.0.9\lib\security
copy /B /Y cacerts cacerts.bk // 后续运行先还原备份 copy /B /Y cacerts.bk cacerts
....\bin\keytool.exe -import -keystore cacerts -file aliyun.cer
如果 import 时提示“ 证书未导入, 别名 <mykey> 已经存在”,您可以执行....\bin\keytool.exe -import -keystore cacerts -file dlgg_210329.cer -alias third_party_ca
-alias third_party_ca的意思是为该证书起名为third_party_ca (或其它名称,与已有的不冲突就好)
tip: java 密钥库中的每个条目都由一个名为alias密钥标识。 对于给定的密钥库,它必须是唯一的。 如果您不提供,则keytool使用的默认值是mykey
重启Android Studio,点击工具类 sync gradle 图标,看看是否还会报同样的证书错误。