我添加了一個由非標準證書頒發機構(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位置
在IntelliJ IDEA的15,該複選框是在這裏:**文件>設置...>工具>服務器證書>自動接受非受信任的證書** – 2016-01-06 09:42:30
你反對投票我的答案,因爲我選擇了嗎?我從來沒有說過你應該這樣做。如果NSA想把新的SDK推到我的開發環境中,世界一定不會再那麼可怕了。 – 2016-03-01 17:53:02
是的。這比添加您需要的證書更不理想。鑑於有人來到網站並尋找快速解決方案,他們的第一個選擇應該是添加證書而不是盲目信任所有未簽名的 – chrisortman 2016-03-21 15:16:01