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年了...

解決方法
  1. 安裝新版的Java Runtime。
  2. 防火牆新增一筆連入規則
  3. 修改Jenkins.xml,改用新版Jre,如下
    • 修改前
                
  • 修改後
                

以上大功告成

其它/參考

這個網誌中的熱門文章

IIS 設定只允許特定IP進入

[Sql Server] 資料庫備份筆記