証明書管理、してますか?
Let’s Encrypt が登場して以降、TLS 証明書が様々な認証局で、有償・無償問わず発行できるようになりました。
LAN 内とはいえ、いちいち証明書の警告が出るのは鬱陶しいし、そのたびに証明書を信頼したくない。
ただ、某スティーブ・ジョブズの会社…もとい、 Apple が提出した将来的に有効期限を 10 日にする提案に噛みつく人々を不思議そうに見つつ、自宅内に設置してある機器類の証明書管理を自動化することにした。
筆者は TLS 証明書は人間が主導で管理するものではないと考えているため、上記の Apple の提案に反発している人の思考が理解できない。
以下のような作業を楽しんでいるのだろうか?
- 証明書リクエスト (CSR) を作成
- 社内の稟議システムに提出
- 証明書管理チームが証明局に署名を依頼
- 起票者に証明書を送信
Cert Warden を導入した
本題。
自宅の一部機器は TLS 証明書の登録に対応しているが、本体の機能のみで DNS-01/HTTP-01 等のチャレンジをして TLS 証明書の取得・更新に対応している機器は少ない。
筆者の自宅では、以下の機器にこれまで Let’s Encrypt 等で取得した証明書を登録していた。
- ルータ
- スイッチ
- UPS
- PDU
- サーバの IPMI コンソール
それぞれに対応するため、 Proxmox 上のコンテナに systemd サービスとタイマーを作成し、定期的に独自のスクリプトを実行していた。
正直、面倒だ。冒頭であれだけ煽っておきながら、この有様とは情けない。
そんな中、 UPS の証明書更新用に利用していたツールの作者が Cert Warden なるものを作成していた。要するに Web インターフェース上から証明書の管理等が行えるツールだ。
公式ページに掲載されているガイド通りに進めれば、Docker 環境でも直インストール環境でも、特に困ることなく、証明書の管理や独自スクリプトを用いた、証明書のアップデートが可能になる。
以前に書いた以下の記事などは、証明書発行後に実行しなければならない後処理がいくつかあるため、今回のソリューションはなかなか良かった。