2014-10-04 107 views
18

忽略此警告是否安全?它顯示了,當我創建Android Studio中一個新項目: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 

... 

日期看起來沒事,我檢查了我的計算機的日期設置,以確保萬無一失。爲什麼會是「不可信」?

回答

21

Android Studio中有服務器證書的配置(這適用於以及其他的IntelliJ平臺,如PyCharm)

轉到文件 - >設置。在IDE設置部分選擇服務器證書

我自己,我只是選擇了接受自動複選框,點擊應用,從來沒有來對付它。如果您擔心安全問題,還可以選擇一次添加1個。

在我的情況下,我這樣做是因爲我已經有一個* .google.com證書配置爲接受,但我仍然彈出。我懷疑指紋是否改變,如果我刪除了,然後接受,錯誤將會消失,但我決定通過選中複選框使其消失。

+3

在IntelliJ IDEA的15,該複選框是在這裏:**文件>設置...>工具>服務器證書>自動接受非受信任的證書** – 2016-01-06 09:42:30

+2

你反對投票我的答案,因爲我選擇了嗎?我從來沒有說過你應該這樣做。如果NSA想把新的SDK推到我的開發環境中,世界一定不會再那麼可怕了。 – 2016-03-01 17:53:02

+0

是的。這比添加您需要的證書更不理想。鑑於有人來到網站並尋找快速解決方案,他們的第一個選擇應該是添加證書而不是盲目信任所有未簽名的 – chrisortman 2016-03-21 15:16:01

10

忽略該警告是不安全的。有人可能會嘗試用假證書進行中間人攻擊,以便通過更新過程在您的計算機上安裝惡意軟件。這可能沒有發生,但在安全方面正確地做事總是更好。

您應該將您信任的根證書添加到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日之前,該警告不應該再次出現,除非有人真的出示假證書。

3

對於Mac操作系統,它位於菜單Android Studio-> Preferences-> Tools-> Server Certificates中。

在右側窗口的頂部選擇複選框自動接受不可信證書。點擊應用並確定。

0

從AndroidStudio 1.5.1開始,您可以轉到首選項 - >工具 - >服務器證書,然後單擊+按鈕手動添加應該信任的證書。

0

缺少專用於Java的系統證書。如果您使用的是Ubuntu和Oracle JRE/JDK,請安裝ca-certificates-java軟件包。

1

我添加了一個由非標準證書頒發機構(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 

我下載了pem文件自定義CA,叫my-ca.pem。我試着在將這個到Android工作室 - >工具 - >服務器證書,但是這並沒有解決它。

我注意到,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這個構建然後工作了。

另一種解決方案是設置了Android Studio中使用你的機器,安裝了CA證書,使用菜單中文件上使用自定義JDK - >項目結構 - >SDK位置 - >JDK位置

相關問題