Let’s Encrypt 証明書取得コマンド忘備録|CertbotでのSSL設定メモ
はじめに
サーバ構築をしていると、SSL証明書の更新作業は定期的に行うものの、
半年に一度くらいの頻度なので毎回コマンドを忘れがちです。
本記事は、自分への 忘備録 として、
Let’s Encrypt(Certbot)でサーバ証明書を取得・更新する手順をまとめたものです。
環境
- OS: Rocky Linux / AlmaLinux / Ubuntu
- Webサーバ: Apache または Nginx
- 証明書発行: Let’s Encrypt(Certbot)
1. Certbot のインストール
Rocky / AlmaLinux の場合
|
1 2 3 |
sudo dnf install epel-release -y sudo dnf install certbot python3-certbot-apache -y |
Ubuntu の場合
|
1 2 3 |
sudo apt update sudo apt install certbot python3-certbot-apache -y |
※ Nginx を使う場合は python3-certbot-nginx をインストールします。
2. 証明書の取得
Apache の場合
|
1 2 |
sudo certbot certonly --webroot -w /var/www/html -m info@example.com -d example.com -n --agree-tos |
※ -d は対象ドメインを指定します。
複数ドメインをまとめて取得する場合は、スペースで区切って指定します。
3. 証明書の自動更新設定
Let’s Encrypt の証明書は有効期限が 90日間。
期限切れを防ぐため、自動更新を設定しておきましょう。
✅ 方法①:systemdタイマー(推奨)
最近のCertbotでは、systemd による自動更新が標準で用意されています。
以下のコマンドで有効化しておくだけでOKです。
|
1 2 |
sudo systemctl enable --now certbot-renew.timer |
タイマーの状態を確認:
|
1 2 |
sudo systemctl list-timers | grep certbot |
この方法では 1日2回 自動的に更新チェックが実行され、
有効期限が近い証明書は自動的に更新されます。cron の設定が不要で、より確実に運用できます。
✅ 方法②:cron(従来の方法)
もし systemd が使えない環境(古いCentOSなど)では、cron での自動更新も可能です。
|
1 2 |
sudo crontab -e |
以下を追記:
|
1 2 |
0 3 * * * /usr/bin/certbot renew --quiet |
→ 毎日午前3時に自動で更新チェックが実行されます。
動作確認(どちらの方法でもOK)
設定が正しく動いているかをテストします。
|
1 2 |
sudo certbot renew --dry-run |
エラーが出なければ自動更新の設定は完了です。
💡 補足
systemdタイマー方式は再起動後も確実に動作し、推奨です。cron方式はどの環境でも通用する汎用的な方法です。
4. 証明書の保存場所
発行された証明書は以下のディレクトリに保存されます。
|
1 2 |
/etc/letsencrypt/live/example.com/ |
中身は以下の4ファイルです。
| ファイル名 | 内容 |
|---|---|
| cert.pem | サーバ証明書 |
| privkey.pem | 秘密鍵 |
| chain.pem | 中間証明書 |
| fullchain.pem | サーバ+中間証明書 |
Apache / Nginx の設定では、
通常 fullchain.pem と privkey.pem を使用します。
5. よく使う確認コマンド
証明書の一覧を確認:
|
1 2 |
sudo certbot certificates |
特定ドメインを強制更新:
|
1 2 |
sudo certbot renew --force-renewal --cert-name example.com |
まとめ
Let’s Encrypt は無料で使える非常に便利なSSL証明書サービスですが、
コマンドを毎回調べるのは地味に面倒です。
そのため、自分用メモとして以下を覚えておくと安心です。
💡 ポイント
certbot certificates:状態確認certbot renew --dry-run:更新テストsystemctl enable --now certbot-renew.timer:自動更新有効化