2. updating_ca_bundle

FreeBSD 12.1-RELEASE-p3 amd64 と Ports の security/ca_root_nss (ca_root_nss-3.50) の環境で、ルート証明書を追加する手順の覚書。

自家CAを建てるとか、ca_root_nssに掲載されていないルートCAを扱うとかで 必要になるかもしれない。(なった

手元の環境では ca_root_nss を入れているので、ルートCAの公開鍵を列挙した デフォルトのファイルはここに置かれる。

(1) /usr/local/share/certs/ca-root-nss.crt

そして、このファイル(1)へのシンボリックリンクが(security/ca_root_nss インストール次の設定にもよるが) ここに置かれる。

(2) /etc/ssl/cert.pem
(3) /usr/local/etc/ssl/cert.pem.sample

さらに、デフォルトファイル(1)のコピーが

(4) /usr/local/etc/ssl/cert.pem

にある。

要するにこのファイルに追記すれば良いわけだが、デフォルトファイル(1)を 書き換えるのは気がひけるので、コピー(4)に追記して(2)のリンクを張り替える ことにした。

これから追加したいルートCAの証明書が myroot.crt だとすると、

openssl x509 -in myroot.crt -text -fingerprint -out myroot.crt.new

として human readable (あんまりそうは思えないが)な text とフィンガープリントと 証明書本体の入ったファイル(5)を作る。 これが、(4)のバンドルファイルの各ルートCAの証明書にあたるフォーマットであるらしい。 その上で、(5)を(4)に追記する。どうも証明書間に空行があるようなのでそれも入れておく。

echo "" >> /usr/local/etc/ssl/cert.pem
cat myroot.txt.new >> /usr/local/etc/ssl/cert.pem

最後に (2) のシンボリックリンクを張り替える。openssl s_clientはこっちを見てた。

rm -i /etc/ssl/cert.pem
ln -s /usr/local/etc/ssl/cert.pem /etc/ssl/cert.pem

以上で行けるはず。

(2020/Apr/05頃書いた)