Jenkinsサーバを久しぶりに構築した時に発生したトラブルと対処について。
発生した事象
- 「プラグインマネージャー」のページで、「利用可能」欄に何も表示されない。
- データ更新ボタンを押すと、
Signature verification failed in update site 'default'
というメッセージ。 - アップデートサイト http://updates.jenkins-ci.org/update-center.json にはもちろん繋がる。
- ログには以下のようなメッセージ。
SEVERE: ERROR: Signature verification failed in update site 'default' <a href='#' class='showDetails'>(show details)</a><pre style='display:none'>java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA<br> at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.j(略)
結論から言うと、JDKの影響でした。
久しぶりにインストールしたので、Jenkinsのバージョンが悪いのか、それとも設定が悪いのかで試行錯誤したのですが、まさかJDKの影響だとは…。
環境
- CentOS 6.6
- Jenkins 1.645
- OpenJDK 1.8.0_71
対処
以下のいずれか1つを行えば良さそうです。
JDKのデフォルトシステムプロパティの変更
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.el6_7.x86_64/jre/lib/security/java.security
# 変更前
# jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
# 変更後
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
「参考」のURLでは別の対処になっていますが、試した環境ではこちらの対処にしないと解消しませんでした。
Jenkinsの起動オプションのシステムプロパティを変更
# 変更前
# JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
# 変更後
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DownloadService.noSignatureCheck=true"
JDKのバージョンを落とす
JDK1.8.0-71だとダメですが、1.8.0-60ではOKでした。
参考