手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 update-ca-certificates の基本設定 – 内部 CA 証明書を信頼する

関連する記事

Ubuntu 26.04 で内部 CA や自己署名 CA を使う場合、ca-certificates の信頼ストアへ CA 証明書を登録しておく必要があります。LDAP、Docker Registry、内部 HTTPS サービスなどでは、server 側の証明書だけでなく client 側の信頼設定がそろって初めて TLS 検証が通ります。

この記事では、Ubuntu の ca-certificatesupdate-ca-certificates の役割を確認しながら、内部 CA 証明書を Ubuntu 26.04 に登録し、/usr/share/ca-certificates/usr/local/share/ca-certificates/etc/ca-certificates.conf/etc/ssl/certsopenssl s_client で確認する基本をまとめます。

この記事で扱うこと
  • 内部 CA 証明書を OS の信頼ストアへ登録する流れ
  • /usr/share/ca-certificates/usr/local/share/ca-certificates の使い分け
  • /etc/ca-certificates.confupdate-ca-certificates
  • /etc/ssl/certs への反映確認
  • LDAPS や内部 HTTPS への TLS 検証確認
対象 OSUbuntu 26.04 Server
登録コマンドupdate-ca-certificates
設定ファイル/etc/ca-certificates.conf
証明書配置例/usr/share/ca-certificates/example/example-ca.crt
反映先/etc/ssl/certs
参考書籍
参考書籍
Bulletproof TLS and PKI
TLS、証明書、CA、信頼ストアの考え方を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

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.crt

ca-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-certificates

local 配置で登録する

個別ホストで簡単に登録する場合は、/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_clientcurlldapwhoami などで、実サービスに対する確認まで行うと安全です。

関連する記事
Ubuntu 26.04 update-ca-certificates の基本設定 – 内部 CA 証明書を信頼する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る