CentOS7にJenkinsをインストールしましたが、プラグインを更新/インストールしようとするとSSLエラーが発生しました。調査の結果、Java CAストアにルートCA証明書が見つからないことがわかりました。
keytool
ユーティリティを使用して、不足しているCA証明書をJava CAストアに追加しましたが、機能しましたが、改ざんしなければならないのは面倒です。
Javaがシステムによって信頼されているルートCA証明書を継承する方法はありませんか?はいの場合、どのようにですか?
証明書ファイルをCentOS 7.xのこのディレクトリにコピーするだけです。
$ Sudo cp <cert file> /etc/pki/ca-trust/source/anchors/
証明書ファイルがこのディレクトリに配置されたら、次のコマンドを実行して、新しく追加されたこの証明書でシステムを更新します。
$ Sudo update-ca-trust
update-ca-trust
のマニュアルページを確認すると、次のセクションが表示されます。
$ man update-ca-trust
...
/ etc/pki/Java/cacerts
クラシックファイル名、ファイルには、TLSサーバー認証の使用で信頼されるCA証明書のリストがJavaキーストアファイル形式、不信情報なしで含まれています。このファイルは、作成された統合出力を参照するシンボリックリンクですupdate-ca-trustコマンドによる。
そのファイルを見ると、それが/etc/pki
ディレクトリ構造の残りの部分にどのように接続されているかがわかります。
$ ll /etc/pki/Java/cacerts
lrwxrwxrwx. 1 root root 40 May 2 10:41 /etc/pki/Java/cacerts -> /etc/pki/ca-trust/extracted/Java/cacerts
そして、それに対してJava keytool
を実行すると:
$ keytool -list -keystore /etc/pki/Java/cacerts -storepass changeit |& head
Keystore type: JKS
Keystore provider: Sun
Your keystore contains 155 entries
hellenicacademicandresearchinstitutionsrootca2011, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
taiwangrca, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
teliasonerarootcav1, May 2, 2018, trustedCertEntry,
上記が利用可能なすべての証明書を取得し、それらがこのJava JKSファイルに自動的に組み込まれていることを確認できます。このファイルは、すべてのJavaシステムで実行されているアプリケーション。