Android Studio | Windows ERROR: Cause: unable to find valid certification path to requested target

前言

Today,突然看到 CSDN App 提示有條私信:
在這裏插入圖片描述
想了下 no mouble,很 easy 呀,同步下就好啦~

雞老大,瞅瞅我分分鐘搞定~

得瑟的代價,就是啪啪打臉,車翻了。特意記錄下。

修車 Go~

小夥子發來一個異常圖,一起來看下:

在這裏插入圖片描述
腦子想了半天,沒遇到過這個問題呀,說的什麼鬼證書的事兒。我從 Windows 切換到 Mac OS,Android Studio 倒是一直沒出現過這個鬼鬼。

怎麼辦,找雞老大?

ummm,想都不想就找雞老大,容易被懟。順手打開 stack overflow 萬能的神器,找到如下解決方案:

這裏特意截取關鍵解決之道,方便某天神奇的打不開就尷尬了,其實還是方便我這個懶人,哇咔咔~

來來來,搞起來~

遠程了小夥子的電腦,發現是連接 jcenter 下載相關資源包異常導致,那麼操作就 easy 了很多了~

Step 1:打開 jcenter 官網,下載其證書
在這裏插入圖片描述
點擊證書進入詳情:

點擊「複製到文件…」,這裏很多都是一鍵式點點點,這裏唯獨需要主要一點,導出文件格式需要設置爲 Base64 編碼,如下圖所示:

Step 2:介紹倆個工具

Android Studio 提供的證書管理工具:
在這裏插入圖片描述
JDK 自帶證書文件:
在這裏插入圖片描述
Step 3:將下載下來的證書導入 JDK cacerts

這裏需要注意一點,Windows 打開 CMD 工具一定要以管理員身份運行!!!
這裏需要注意一點,Windows 打開 CMD 工具一定要以管理員身份運行!!!
這裏需要注意一點,Windows 打開 CMD 工具一定要以管理員身份運行!!!

否則最後會提示 cacerts 拒絕訪問。

鍵入以下命令行:

keytool -import -alias [證書別名] -keystore [JDK 中 cacerts 目錄地址] -file [下載網址證書本地存放地址]

密鑰口令:changeit

操作示意圖如下:
在這裏插入圖片描述
最後會提示「是否信任此證書?」輸入 y/Y 即可。

隨後清空 Android Studio 緩存並重啓即可。

番外篇

更新證書保險點需要三步走:

  • 查看證書信息: keytool -list -keystore [JDK 中 cacerts 目錄地址]
  • 刪除要更新的證書: keytool -delete -alias [證書別名] -keystore [JDK 中 cacerts 目錄地址]
  • 更新證書: keytool -import -alias [證書別名] -keystore [JDK 中 cacerts 目錄地址] -file [下載網址證書本地存放地址]

這裏附上詳情操作步驟:

<!-- 查看證書信息 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -list -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts"
輸入密鑰庫口令:
密鑰庫類型: jks
密鑰庫提供方: SUN

您的密鑰庫包含 102 個條目

...
證書指紋 (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB
as, 2020-2-17, trustedCertEntry, // 之前導入的證書
...

<!-- 導入證書,這個純粹個人實驗 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -import -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts" -file C:\Users\86177\Downloads\as.cer
輸入密鑰庫口令:
keytool 錯誤: java.lang.Exception: 證書未導入, 別名 <as> 已經存在

<!-- 刪除指定別名證書 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -delete -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts"
輸入密鑰庫口令:

<!-- 導入證書 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -import -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts" -file C:\Users\86177\Downloads\as.cer
輸入密鑰庫口令:
所有者: CN=*.bintray.com
發佈者: CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
序列號: e6e
有效期爲 Thu Sep 26 08:00:00 GMT+08:00 2019 至 Tue Nov 09 20:00:00 GMT+08:00 2021

參考資料

  1. Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?
  2. Java#PKIX path building failed
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章