リンク限定

OpenJDKのcacerts

RHEL系OSのルート証明書の内容がOpenJDKのcacertsに反映されるとの話
0
Takahiro YAMADA @yamadamn

RHEL系OSだけかもしれんが、yum/dnfでインストールしたOpenJDKの証明書ファイル(cacerts)って、OSで追加したルート証明書の内容が反映されるのかな。 今更ながら知らんかった…

2023-03-01 09:23:52
msakamoto-sf @msakamoto_sf

@yamadamn うろ覚えなんですが、RHEL/CentOSの ca-certificates パッケージが提供する update-ca-trust コマンドが、まとめてJava(正確にはrhel/centosビルドのopenjdk)のcacertsもよしなに更新してくれて、全体として整合性取ってくれてたような・・・記憶があります。

2023-03-01 22:27:39
リンク Red Hat Customer Portal 15.2. 新しい証明書の追加 Red Hat Enterprise Linux 8 | Red Hat Customer Portal Access Red Hat’s knowledge, guidance, and support through your subscription.
リンク Red Hat Customer Portal 4.2. 新しい証明書の追加 Red Hat Enterprise Linux 9 | Red Hat Customer Portal Access Red Hat’s knowledge, guidance, and support through your subscription.
msakamoto-sf @msakamoto_sf

@yamadamn update-ca-trust コマンドの実体がたしかスクリプトファイルか何かで、ソース斜め読みしたら rhel/centosビルドの openjdk が参照するcacertsも操作してくれてて「安心だね~」ってなったかすかな記憶があります。

2023-03-01 22:29:43
msakamoto-sf @msakamoto_sf

@yamadamn rhel/centosビルドのopenjdkも /etc/alternatives/java 以下にsymlink張りまくってるので、その辺追うのもちょいめんどいですが。

2023-03-01 22:31:02
msakamoto-sf @msakamoto_sf

@yamadamn 逆にいえば、rhel/centosビルド以外のOpenJDKディストリビューションバイナリを入れた場合、update-ca-trustでは反映されないので自分たちでcacerts管理する必要がある気がします。(未検証)(それか update-ca-trust に合わせる形にカスタム頑張る)

2023-03-01 22:32:44
Takahiro YAMADA @yamadamn

@msakamoto_sf 色々と詳細ありがとうございます! Adoptiumもdnfでインストールしたら、cacertsにOSのルート証明書が追加されてたんですよね。 最初に「あれ?なんで通信できてるんだ??」となっておりました…

2023-03-01 22:38:06
msakamoto-sf @msakamoto_sf

@yamadamn なるほど、adoptiumの方でしたか。そちらでも連動してくれるんですかね?便利です! この辺、パッケージのファイル構成とかsymlink辿らないとなにがどうなってるか迷子になります・・・。

2023-03-01 22:41:17
msakamoto-sf @msakamoto_sf

@yamadamn adoptiumということで、openjdkの情報は不要かもですが・・・自分の検証メモを見返すと /etc/pki/ca-trust/extracted/java/cacerts が実体で /etc/pki/java/cacerts 経由で $JAVA_HOME/lib/security/cacerts に symlink してて、

2023-03-01 22:42:31
msakamoto-sf @msakamoto_sf

@yamadamn /etc/pki/ca-trust/extracted/java/cacerts や /etc/pki/java/cacerts を管理してるのが ca-certificates パッケージになりまして、それが update-ca-trust コマンドでシステム全体の証明書ストア(anchor)の整合性を保ってくれてました。

2023-03-01 22:44:08
Takahiro YAMADA @yamadamn

@msakamoto_sf なるほどー、実装は全然追ってなかったのですが、access.redhat.com/solutions/3076… と関連するのだろうな、とは思ってました。 (ログインしないと見られませんが) ここで触れてるのは当然ながらRed Hat OpenJDKだけの話ですね。そちらとAdoptium以外のcacertsはどうなるか確認してないので、今度試してみます!

2023-03-01 23:30:39
リンク Red Hat Customer Portal OpenJDK cacerts file is being overwritten - Red Hat Customer Portal We added an certificate to the OpenJDK Java cacerts keystore with keytool, however, after about 30 minutes from being added, something updates the keystore and the certificate is gone. Something is overwriting cacerts file on RHEL. What is the procedure f
ABE Masanori @abe_masanori

OSに独自に登録したルート証明書をJDKはなぜ使ってくれないかと不思議に思ってたけど、Amazon Correttoだったからなのかな。

2023-03-01 23:20:43
Takahiro YAMADA @yamadamn

@abe_masanori yujiorama.hatenablog.com/entry/2018/11/… を確認する限り、ちょっと古い情報ですが、そのようですね。

2023-03-01 23:49:31
リンク yujioramaの日記 Java のインストール方法とか同梱される cacerts や tzdb.dat の確認 - yujioramaの日記 Java の導入方法や配置されるファイルを説明しているページがなかったので作った。 TL;DR Oracle Java SE とそれ以外の各種 OpenJDK 配布物についていろいろと確認 (Amazon Corretto / OpenJDK(Redhat) 以外では) cacerts の更新を別の運用として考えておくほうがよさそう 利用する Web サービスの情報に合わせるか、とりあえず最新情報を反映するか 手放しだとどこかで刺さりそう 証明書の検証が失敗する問題に出くわす可能性 利用している配布物の違 3 users