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 の場合

Ubuntu の場合

※ Nginx を使う場合は python3-certbot-nginx をインストールします。


2. 証明書の取得

Apache の場合

-d は対象ドメインを指定します。
複数ドメインをまとめて取得する場合は、スペースで区切って指定します。


3. 証明書の自動更新設定

Let’s Encrypt の証明書は有効期限が 90日間
期限切れを防ぐため、自動更新を設定しておきましょう。


✅ 方法①:systemdタイマー(推奨)

最近のCertbotでは、systemd による自動更新が標準で用意されています。
以下のコマンドで有効化しておくだけでOKです。

タイマーの状態を確認:

この方法では 1日2回 自動的に更新チェックが実行され、
有効期限が近い証明書は自動的に更新されます。
cron の設定が不要で、より確実に運用できます。


✅ 方法②:cron(従来の方法)

もし systemd が使えない環境(古いCentOSなど)では、
cron での自動更新も可能です。

以下を追記:

→ 毎日午前3時に自動で更新チェックが実行されます。


動作確認(どちらの方法でもOK)

設定が正しく動いているかをテストします。

エラーが出なければ自動更新の設定は完了です。


💡 補足

  • systemd タイマー方式は再起動後も確実に動作し、推奨です。
  • cron 方式はどの環境でも通用する汎用的な方法です。

4. 証明書の保存場所

発行された証明書は以下のディレクトリに保存されます。

中身は以下の4ファイルです。

ファイル名内容
cert.pemサーバ証明書
privkey.pem秘密鍵
chain.pem中間証明書
fullchain.pemサーバ+中間証明書

Apache / Nginx の設定では、
通常 fullchain.pemprivkey.pem を使用します。


5. よく使う確認コマンド

証明書の一覧を確認:

特定ドメインを強制更新:


まとめ

Let’s Encrypt は無料で使える非常に便利なSSL証明書サービスですが、
コマンドを毎回調べるのは地味に面倒です。

そのため、自分用メモとして以下を覚えておくと安心です。

💡 ポイント

  • certbot certificates:状態確認
  • certbot renew --dry-run:更新テスト
  • systemctl enable --now certbot-renew.timer:自動更新有効化

関連リンク