Jenkins無法更新版本
問題
公司有2台CI Server,一台正式區,一台測試區, 從上星期開始,測試區主機一直無法更新,另一台正式區的卻可以。一開始以為是地理環境,連的Jenkins Update Center不同,才會有此情形,所以放先不管它。
這兩天再次執行更新,仍然會出現錯誤,訊息如下,找不到憑證。
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
Caused: sun.security.validator.ValidatorException: PKIX path building failed
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
....
原因
一開始搜尋時,找到解答大部份是使用Keytool import或者修改Update Site的Url :https 改成http,但試過都沒效。最後在stackoveflow找到一篇,疑似Jenkins內建的Jre太舊所造成的。
ps: 2014年安裝,也有6年了...
解決方法
- 安裝新版的Java Runtime。
- 防火牆新增一筆連入規則
- 修改Jenkins.xml,改用新版Jre,如下
- 修改前
- 修改後
以上大功告成
其它/參考