Android Studio:服务器的证书不受信任

时间:2014-10-04 12:15:00

标签: android-studio certificate

忽略此警告是否安全?它在我在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

...

日期看起来不错,我检查了计算机的日期设置以确定。为什么它会“不信任”?

9 个答案:

答案 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