Let’s Encrypt証明書は90日間有効です。安全マージンを確保するため、60日目までに更新すべきです。GetHTTPS(手動)とCertbot(自動)での更新方法を紹介します。
方法1:GetHTTPSで更新(手動)
元の証明書取得時と同じ手順を繰り返します:
- gethttps.com/app/setup にアクセス
- 同じドメインを入力
- HTTP-01またはDNS-01チャレンジを完了(以前と同じ)
- 新しい証明書ファイルをダウンロード
- サーバー上の古いファイルを置き換え:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem sudo systemctl reload nginx # またはapache2/httpd
所要時間: 経験済みなら2〜3分。
方法2:Certbotによる自動更新
Certbotがサーバーにインストールされている場合、更新は自動的に行われます:
# 自動更新が設定されているか確認
sudo systemctl list-timers | grep certbot
# テスト用のドライラン
sudo certbot renew --dry-run
# 今すぐ強制更新
sudo certbot renew
Certbotのsystemdタイマー(またはcronジョブ)は1日2回実行され、有効期限30日以内の証明書を更新します。
証明書の有効期限を確認する方法
# サーバーから確認
openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem
# リモートで確認
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
リマインダーを設定
- 0日目: 証明書発行(90日間有効)
- 60日目: 更新(推奨 — 30日の安全マージン)
- 90日目: 証明書の有効期限切れ — セキュリティ警告が表示
60日目にカレンダーリマインダーを設定してください。複数ドメインを管理している場合は、監視サービスを使用して有効期限のアラートを設定してください。
更新比較:手動 vs 自動
| GetHTTPS(手動) | Certbot(自動) | |
|---|---|---|
| 更新あたりの手間 | 2〜3分 | ゼロ(cronジョブ) |
| サーバーアクセス | ファイル置換のみ | フルアクセス(root) |
| 障害検出 | サイトが壊れて気づく | Certbotログ + メール通知可能 |
| 最適な用途 | 1〜5ドメイン、rootアクセスなし | 本番サーバー、多くのドメイン |
47日間の将来
CA/Browser Forumは最大証明書有効期間の短縮を決議しました:
| 発効日 | 最大有効期間 |
|---|---|
| 現在 | 90日(Let’s Encrypt) |
| 2026年3月 | 200日 |
| 2027年3月 | 100日 |
| 2029年3月 | 47日 |
2029年までに、約30〜35日ごとの更新が必要になります。自動更新(Certbot)の重要性がますます高まります。
よくある質問
有効期限前に更新できますか?
はい。Let’s Encryptはいつでも更新を許可します。新しい証明書は新しい90日間の有効期間で発行されます。
更新ごとにチャレンジをやり直す必要がありますか?
はい。更新ごとに新しいドメイン検証チャレンジが必要です。これはセキュリティ機能で、ドメインをまだ管理していることを確認します。
更新でダウンタイムは発生しますか?
正しく行えば発生しません。新しいファイルをアップロードし、Webサーバーを再起動ではなくリロードしてください。nginx -s reload や apachectl graceful は既存の接続を切断せずに新しい証明書を適用します。
GetHTTPSで最初の証明書を取り、Certbotで更新できますか?
はい。証明書ファイルは標準のPEMフォーマットです。GetHTTPSで最初の証明書を生成し、その後Certbotをインストールして自動更新できます。競合はありません。詳細比較 →