忽略此警告是否安全?它在我在Android Studio中创建新项目时出现:
Server's certificate is not trusted
Certificate details
Issued To
CN (Common Name) *.google.com
O (Organization) Google Inc
L (Locality) Mountain View
C (Country) US
ST (State or Province) California
Issued By
CN (Common Name) Google Internet Authority G2
O (Organization) Google Inc
C (Country) US
Validity Period
Valid from: 9/24/14
Valid until: 12/23/14
...
日期看起来不错,我检查了计算机的日期设置以确定。为什么它会“不信任”?
答案 0 :(得分:36)
Android Studio有服务器证书的配置(这适用于其他IntelliJ平台,如PyCharm)
转到文件 - >设置。在 IDE设置部分中,选择服务器证书
我自己刚刚选中了自动接受复选框,点击“应用”并且从不必处理它。如果您担心安全性,也可以选择在它们出现时一次添加1个。
在我的情况下,我这样做是因为我已经将* .google.com证书配置为已接受,但我仍然获得了弹出窗口。我怀疑指纹已经改变,如果我已经删除然后接受错误就会消失,但我决定通过选中复选框让它消失。
答案 1 :(得分:16)
忽略该警告是不安全的。有人可能会尝试使用假证书进行中间人攻击,以便通过更新过程在您的计算机上安装恶意软件。这可能不会发生,但在安全方面做事情总是更好。
您应该将您信任的根证书添加到Android Studio密钥库。密钥库的位置和默认密码应列在该警告的底部。例如,我的是~/Library/Caches/AndroidStudio/tasks/cacerts
。接下来,您将要在服务器呈现的链中找到根证书。不幸的是,警告并未列出整个链条,因此需要一些工作才能找到它。 Google Internet Authority G2
证书与用于签署Google网站证书的证书相同。您可以访问google.com,点击绿色锁定,然后点击连接标签中的“证书信息”,在Chrome中查看链条。此时,您可以验证警告中的哈希值是否与真实G2证书的哈希值匹配。您还会看到根证书名为Equifax Secure Certificate Authority
。您可以从https://www.geotrust.com/resources/root-certificates/下载。接下来,您需要将其添加到密钥库:
keytool -import -alias equifaxca \
-file Equifax_Secure_Certificate_Authority.pem -keystore cacerts
最后,重启Android Studio。除非有人实际出示假证书,否则该警告不应再出现在2018年8月22日之前。
答案 2 :(得分:4)
对于Mac操作系统,它位于Android Studio-> Preferences-> Tools-> Server Certificates菜单中。
在右侧窗口的顶部,选中“自动接受不受信任的证书”复选框。点击申请即可。
答案 3 :(得分:3)
在使用由非标准证书颁发机构(CA)签名的SSL证书添加maven存储库后,我遇到了此问题。
从我的命令行运行我的项目的gradle构建时,一切正常(我已将自定义CA添加到我的机器Java安装cacerts)。我遇到了从Android工作室运行构建的问题,并且遇到了这样的错误:
> Could not resolve joda-time:joda-time:2.9.9.
> Could not get resource 'https://custom-maven-repo.com/repository/releases/joda-time/joda-time/2.9.9/joda-time-2.9.9.pom'.
> Could not GET 'https://custom-maven-repo.com/repository/releases/joda-time/joda-time/2.9.9/joda-time-2.9.9.pom''.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> unable to find valid certification path to requested target
我下载了自定义CA的pem
文件,名为my-ca.pem
。我尝试在 偏好设置 - >中将此添加到Android Studio 工具 - > 服务器证书 ,但是没有修复它。
我注意到Android Studio使用嵌入式JDK( 文件 - > 项目结构 - > SDK位置 - > JDK位置 )/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
。为了获得证书,我运行(在Mac OS X上)这些命令来添加证书,然后杀掉Android Studio java进程:
/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -import -alias my-ca -keystore /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -file path/to/my-ca.pem -noprompt
kill -9 $(ps -A | grep java | grep "Android Studio" | grep -v grep | awk '{print $1}')
从Android Studio运行gradle构建然后工作。
另一种解决方案是使用 文件 中的菜单,在安装了CA证书的计算机上设置Android Studio以使用自定义JDK - > 项目结构 - > SDK位置 - > JDK位置
答案 4 :(得分:1)
从AndroidStudio 1.5.1开始,您可以转到偏好设置 - >工具 - >服务器证书,然后单击+按钮以手动添加应该信任的证书。
答案 5 :(得分:0)
缺少特定于Java的系统证书。如果您使用的是Ubuntu和Oracle JRE / JDK,请安装ca-certificates-java软件包。
答案 6 :(得分:0)
Android Studio具有服务器证书的配置。
只需执行以下步骤-
转到文件-> 设置。在工具部分中,选择服务器证书。
我本人只是选择了自动接受不受信任的证书复选框,然后单击Apply(应用),而不必进行处理。
答案 7 :(得分:-1)
没有一个答案对我有帮助,因此希望对其他人有帮助。
重新启动计算机可以解决问题。 (如果有疑问,对吗?)
答案 8 :(得分:-1)
我经常跟踪SELF_SIGNED_CERT_IN_CHAIN
错误。
在node.js中解决npm可以解决证书问题。
npm config set cafile /path/to/cert.pem
请参阅下文 https://mmx5002.blogspot.com/2020/02/selfsignedcertinchain.html