ACMEとLet's Encrypt:証明書の自動化
ACME(Automatic Certificate Management Environment, RFC 8555)は、サーバがドメインの管理権を証明し、人手を介さず証明書を取得するためのプロトコルです。Let's Encrypt が広め、今や多くのCAが対応しています。
発行の流れ
- ACMEクライアント(certbot・acme.sh・Caddy など)がアカウントと鍵を作成。
- CA に証明書を要求し、チャレンジを受け取る。
- チャレンジを完了して管理権を証明。
- CA が検証して発行。クライアントが導入し更新をスケジュール。
HTTP-01とDNS-01
| チャレンジ | 管理権の証明方法 | 向いている場面 |
|---|---|---|
| HTTP-01 | ポート80で /.well-known/acme-challenge/… にトークンを配置 |
単一のWebサーバ |
| DNS-01 | _acme-challenge TXTレコードを公開 |
ワイルドカード、80番非公開のサーバ |
DNS-01 はワイルドカード証明書を得る唯一の方法で、ホストがポート80で公開されていなくても機能します。
有償証明書が今も適する場面
ACMEはドメイン認証(DV)証明書を発行します。組織認証(OV)やEVが必要な場合(金融、ECの信頼、契約要件など)は、商用証明書が適切です。サイフにやさしいSSL証明書(エスロジカル) を参照してください。
いずれにせよ更新は自動化し、結果は当サイトの SSL/TLSチェッカー で確認しましょう。背景: 証明書の有効期限を確認する。
メモ: 残り有効期間が約⅓になる前に必ず更新を。Let's Encrypt証明書は90日有効なので60日目に更新します。