Let's Encryptとは
Let's Encryptは、2015年に設立された非営利の認証局(CA)で、無料でドメイン検証(DV)TLS証明書を発行しています。ISRG(Internet Security Research Group)が運営し、Mozilla、Cisco、EFF、Akamai、Chrome、Facebookなどがスポンサーとなっています。
Let's Encryptの登場により、HTTPSの普及率は劇的に向上し、現在ではインターネット上の約80%以上のWebサイトがHTTPSを使用しています。ACME(Automatic Certificate Management Environment)プロトコルにより、証明書の取得と更新が完全に自動化されています。
Let's Encryptの特徴
- 完全無料:費用は一切かからない
- 自動化:ACMEプロトコルによる自動発行・更新
- 短い有効期間:90日間(自動更新前提)
- ドメイン検証:HTTP-01、DNS-01チャレンジ
- ワイルドカード対応:*.example.comの証明書も発行可能
AIエンジニアとしての実体験
AIエンジニアとして、開発環境やステージング環境のHTTPS化にLet's Encryptを多用しています。以下は日常的に使用するコマンドです:
# certbotのインストール(Ubuntu)
sudo apt update
sudo apt install certbot python3-certbot-nginx
# Nginx用の証明書取得(自動設定)
sudo certbot --nginx -d api.example.com -d www.example.com
# スタンドアロンモード(Webサーバーなしで取得)
sudo certbot certonly --standalone -d api.example.com
# DNS-01チャレンジ(ワイルドカード証明書)
sudo certbot certonly --manual --preferred-challenges dns \
-d '*.example.com' -d example.com
# 証明書の更新テスト
sudo certbot renew --dry-run
# 自動更新のcronジョブ確認
sudo systemctl list-timers | grep certbot
ACMEプロトコルの仕組み
HTTP-01チャレンジ
最も一般的な検証方法。指定されたトークンを/.well-known/acme-challenge/に配置して検証します。
DNS-01チャレンジ
DNSレコードにトークンを追加して検証。ワイルドカード証明書の取得に必須です。
自動更新の設定
# systemdタイマーの確認
sudo systemctl status certbot.timer
# 手動でcronを設定する場合
# /etc/cron.d/certbot
0 */12 * * * root certbot renew --quiet --post-hook "systemctl reload nginx"
最新動向(2026年)
証明書の有効期間短縮の議論
Google Chromeは証明書の有効期間を90日からさらに短縮することを提案しています。Let's Encryptの自動更新モデルがますます重要になっています。
ARI(ACME Renewal Information)
証明書の最適な更新タイミングをサーバーが指示する新機能がACMEプロトコルに追加されました。
トラブル事例と対策
⚠️ 自動更新の失敗
症状:証明書の期限切れでサイトがダウン
対策:certbot renewのテスト実行、監視システムでの証明書期限チェック、通知設定の確認。
⚠️ Rate Limit到達
症状:証明書の発行回数制限に到達
対策:ステージング環境を使用してテスト。本番では週50証明書の制限に注意。
権威あるリソース
関連用語
📝 関連ブログ記事
よくある質問(FAQ)
Q. Let's Encryptとは何ですか?
Let's Encryptは、ISRG(Internet Security Research Group)が運営する非営利の認証局(CA)です。ACMEプロトコルを使って無料でDV(ドメイン認証)TLS/SSL証明書を自動発行・更新します。2025年時点で世界中の数億のWebサイトで使用されています。
Q. Let's Encryptの証明書は有効期間が短いのはなぜですか?
Let's Encryptの証明書有効期間は90日です(一般的な商用証明書は1〜2年)。短い有効期間は自動更新を促し、セキュリティインシデント発生時に鍵の置き換えを迅速化するためです。Certbotを使えば60日ごとに自動更新するcronを設定できます。
Q. Let's EncryptとNginxを使った証明書取得方法は?
sudo apt install certbot python3-certbot-nginx; sudo certbot --nginx -d example.com のコマンドで自動的に証明書を取得しNginxの設定も更新できます。自動更新はsudo systemctl enable certbot.timer で有効化できます。また、Cloudflare等のCDNを使う場合はDNS-01チャレンジで取得できます。
Q. 2025年以降のLet's Encryptの動向は?
2025〜2026年にかけてApple等が証明書の最大有効期間を47日に短縮する提案をCAB Forumで審議中です。実現した場合は自動更新がより重要になります。また、Let's Encryptは証明書の短縮化に賛成しており、インフラの更新を促しています。短有効期間証明書はセキュリティ上のメリットがあります。
