Ubuntu 26.04 で内部 CA や自己署名 CA を使う場合、ca-certificates の信頼ストアへ CA 証明書を登録しておく必要があります。LDAP、Docker Registry、内部 HTTPS サービスなどでは、server 側の証明書だけでなく client 側の信頼設定がそろって初めて TLS 検証が通ります。
この記事では、Ubuntu の ca-certificates と update-ca-certificates の役割を確認しながら、内部 CA 証明書を Ubuntu 26.04 に登録し、/usr/share/ca-certificates、/usr/local/share/ca-certificates、/etc/ca-certificates.conf、/etc/ssl/certs、openssl s_client で確認する基本をまとめます。
- 内部 CA 証明書を OS の信頼ストアへ登録する流れ
/usr/share/ca-certificatesと/usr/local/share/ca-certificatesの使い分け/etc/ca-certificates.confとupdate-ca-certificates/etc/ssl/certsへの反映確認- LDAPS や内部 HTTPS への TLS 検証確認
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| 登録コマンド | update-ca-certificates |
| 設定ファイル | /etc/ca-certificates.conf |
| 証明書配置例 | /usr/share/ca-certificates/example/example-ca.crt |
| 反映先 | /etc/ssl/certs |
ca-certificates と update-ca-certificates の関係
ca-certificates は、Ubuntu が TLS 検証で参照する CA 証明書群を管理するためのパッケージです。update-ca-certificates は、登録対象の .crt ファイルを読み取り、/etc/ssl/certs のシンボリックリンクと ca-certificates.crt を更新するコマンドです。
アプリケーションによっては独自の信頼ストアを使うため、OS 側へ登録しただけでは十分でない場合があります。まず OS の信頼ストアで TLS 検証できる状態にし、そのうえで Java、ブラウザー、コンテナ実行環境など個別の信頼ストアが必要かを切り分けます。
内部 CA 信頼設定で決めること
内部 CA を信頼させる前に、どの CA 証明書を配布するのか、どのホストへ配布するのか、どの名前で登録するのかを決めます。server 証明書ではなく、署名元の CA 証明書を登録する点が重要です。
- 登録するのは server 証明書ではなく CA 証明書
- 証明書ファイルは
.crt拡張子にする /etc/ca-certificates.confに登録対象を載せるupdate-ca-certificatesで/etc/ssl/certsに反映する- client 側から実サービスへ TLS 検証できることを確認する
CA 証明書を確認する
まず登録する CA 証明書が PEM 形式であり、CA として使える証明書か確認します。証明書本文や秘密鍵を公開記事へ貼らないようにします。
openssl x509 -in example-ca.crt -noout -subject -issuer -dates
openssl x509 -in example-ca.crt -noout -text | grep -A2 'Basic Constraints'
openssl x509 -in example-ca.crt -noout -fingerprint -sha256証明書を配置する
管理対象として明示したい場合は、/usr/share/ca-certificates 配下に専用ディレクトリを作り、CA 証明書を配置します。
sudo install -d -o root -g root -m 0755 /usr/share/ca-certificates/example
sudo install -o root -g root -m 0644 example-ca.crt /usr/share/ca-certificates/example/example-ca.crt
sudo ls -l /usr/share/ca-certificates/example/example-ca.crtca-certificates.conf に登録する
/usr/share/ca-certificates 配下に置いた証明書は、/etc/ca-certificates.conf に相対パスを登録します。
echo 'example/example-ca.crt' | sudo tee -a /etc/ca-certificates.conf
grep '^example/example-ca.crt$' /etc/ca-certificates.conf
sudo update-ca-certificateslocal 配置で登録する
個別ホストで簡単に登録する場合は、/usr/local/share/ca-certificates に .crt ファイルを置いて update-ca-certificates を実行する方法も使えます。
sudo install -o root -g root -m 0644 example-ca.crt /usr/local/share/ca-certificates/example-ca.crt
sudo update-ca-certificates
ls -l /etc/ssl/certs | grep example反映結果を確認する
update-ca-certificates の実行後は、/etc/ssl/certs に symlink が作られ、bundle に CA 証明書が含まれます。
ls -l /etc/ssl/certs | grep example
openssl verify -CApath /etc/ssl/certs example-ca.crt
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt example-ca.crt実サービスへの TLS 検証を確認する
CA 証明書の登録だけでなく、実際の内部サービスへ TLS 検証できることを確認します。LDAPS や Docker Registry のように内部 CA を使うサービスでは、この確認がとても大切です。
openssl s_client -connect ldap.example.com:636 -servername ldap.example.com -verify_return_error
curl -v https://registry.example.com:5000/v2/
ldapwhoami -x -H ldaps://ldap.example.com:636 -D "cn=Directory Manager" -W削除や入れ替えを確認する
CA 証明書を入れ替える場合は、古い証明書ファイルと /etc/ca-certificates.conf の行を削除してから update-ca-certificates --fresh を実行します。
sudo sed -i '/^example\/example-ca.crt$/d' /etc/ca-certificates.conf
sudo rm -f /usr/share/ca-certificates/example/example-ca.crt
sudo update-ca-certificates --fresh
ls -l /etc/ssl/certs | grep example確認ポイント
- 登録対象が CA 証明書である
- 証明書ファイルの拡張子が
.crtである /etc/ca-certificates.confに相対パスを登録しているupdate-ca-certificatesを実行している/etc/ssl/certsに反映されている- 実サービスへ TLS 検証付きで接続できる
- CA 入れ替え時の削除手順を把握している
まとめ
Ubuntu 26.04 で内部 CA 証明書を信頼させるには、CA 証明書を /usr/share/ca-certificates または /usr/local/share/ca-certificates に配置し、update-ca-certificates で OS の信頼ストアへ反映します。
重要なのは、証明書を置いたことではなく、client 側から LDAPS や内部 HTTPS へ TLS 検証付きで接続できることです。openssl s_client、curl、ldapwhoami などで、実サービスに対する確認まで行うと安全です。

