ACMEクライアントツール(certbot)によるサーバ証明書管理手順(利用管理者向け)
改版履歴 | |||
版数 | 日付 | 内容 | 担当 |
V.1.0 | 2025/10/10 | 初版 | NII |
V.2.0 | 2026/03/25 | ACMEクライアントツールごとにページを分割 | NII |
V.2.1 | 2026/04/13 | Apache / Nginxプラグインの記述を追加 | NII |
V.2.2 | 2026/07/26 | ECDSA鍵の曲線指定(--elliptic-curve secp384r1)を追記、証明書一覧コマンドの誤記を修正 | NII |
V.2.3 | 2026/07/26 | 前提条件(ACME利用申請・EAB・CAA)、発行可能FQDNの制約、Route53の認証情報設定手順を追記。手続き種別の分類と章参照名を修正し、手順を節に再構成。記載内容変更時の手順をACMEアカウントの停止・登録による流れに変更 | NII |
V.2.4 | 2026/07/26 | 実機検証の結果を反映。記載内容変更時の手順(実施順序・確認方法・更新設定の扱い)を修正、自動更新の説明とタイマー名を改訂、ARIの説明を追加、トラブルシューティングを新設 | NII |
目次
- 1 1. はじめに
- 2 2. 前提条件
- 2.1 2-1. 実行環境
- 3 3. certbotのインストール手順
- 4 4. certbotによるサーバ証明書管理手順
- 4.1 4-1. サーバ証明書の新規発行手続き
- 4.1.1 4-1-1. ACMEアカウント作成
- 4.1.2 4-1-2. 証明書発行
- 4.1.3 4-1-3. 自動更新について
- 4.2 4-2. サーバ証明書の更新手続き
- 4.2.1 4-2-1. 証明書更新
- 4.3 4-3. サーバ証明書の失効手続き
- 4.3.1 4-3-1. 証明書失効
- 4.4 4-4. トラブルシューティング
- 4.1 4-1. サーバ証明書の新規発行手続き
1. はじめに
このページは、Linuxサーバ上でcertbotを用いてサーバ証明書を発行・更新・失効・削除するための実務手順をまとめたものです。
certbotはサーバ上で実行するコマンドラインツールで、Apache / Nginx 等のWebサーバと連携してACMEプロトコルにより証明書の取得と更新を自動化できます。
certbotの詳細なマニュアルについては、下記公式マニュアルをご参照ください。User Guide — Certbot 5.7.0 documentation
2. 前提条件
本マニュアルの記載内容は、以下の環境で確認しています。
OS:Debian
certbot:4.0.0(OSパッケージ(apt)によるインストール)
2-1. 実行環境
本手順を実施する前に、以下の条件を満たしていることを確認してください。
Linuxサーバ
certbotはLinux等のサーバ上で実行します。
多くの操作は設定ファイルや 80/443番ポートへのバインドを伴うため、管理者権限(root / sudo)での実行が前提です。
個人のPCではなく、運用対象のWebサーバで実行してください。ACME利用情報作成申請(TSV)が完了していること
ACMEプロトコル認証情報(EAB:External Account Binding)の KID および HMACキーを受領済みであること
なお、ACME利用申請およびEABの取得方法については、以下の手順書を参照してください。
ACMEプロトコル認証情報(EAB)による認証情報管理手順(登録担当者向け)DNSにCAAレコードを設定している場合、NIIが指定する発行認証局を許可する設定になっていること
なお、CAAレコードの設定については、以下の手順書を参照してください。
CAA レコード設定インターネット経由でACMEサーバへHTTPS(TCP/443)通信が可能であること
発行元認証局のOCSPレスポンダへHTTP(TCP/80)で通信できること
certbotは証明書の更新判定時に、対象の証明書が失効していないかをOCSPで確認します。HTTP-01を使う場合、外部からTCP80番に到達できる環境
DNS-01を使う場合、手動またはDNSプロバイダAPI経由のプラグインを使用して、対象ドメインのDNS TXTレコードを設定できる環境
ACME サーバはHTTP-01検証において、外部からTCP80番ポートで到達可能であることを確認します。
certbotにはローカルで待ち受けるポート番号を変更するための--http-01-portオプションがありますが、
CAがアクセスする公開側のポート番号は80に固定されており、別の値に変更することはできません。
そのため、80番ポートを開放できない環境では、DNS-01検証方式の利用を検討してください。
3. certbotのインストール手順
3-1. snapによるcertbotインストール(推奨)
最新版の入手が容易で、自動更新(systemd timer)も事前設定済み、かつ多くのsystemd採用ディストリで利用可能です。
snapdが未導入の場合、ディストリに応じてインストールしてください。
Debian系(Ubuntuなど)
コマンド例sudo apt update sudo apt install snapd -yRed Hat系(RHEL, CentOS, Amazon Linuxなど)
コマンド例sudo dnf install epel-release -y sudo dnf install snapd -y sudo systemctl enable --now snapd.socket
certbotのインストール
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version
※ディストリごとの詳しい手順は、Certbot Instructions をご参照ください。
3-2. OS パッケージからのインストール
Debian系(Ubuntuなど)
コマンド例sudo apt update # Apacheを利用している場合 sudo apt install certbot python3-certbot-apache -y # Nginxを利用している場合 sudo apt install certbot python3-certbot-nginx -y※上記のうち、ご利用の環境に合わせてどちらか一方を実行してください。
Red Hat系(RHEL, CentOS, Amazon Linuxなど)
コマンド例# epel-releaseを有効化 sudo dnf install epel-release -y # Apacheを利用している場合 sudo dnf install certbot python3-certbot-apache # Nginxを利用している場合 sudo dnf install certbot python3-certbot-nginx※上記のうち、ご利用の環境に合わせてどちらか一方を実行してください。
4. certbotによるサーバ証明書管理手順
本章では利用管理者のcertbotによるサーバ証明書の各種手続きの流れについて記述します。
登録担当者による利用管理者へのACMEプロトコル認証情報(EAB)通知済みで、サーバ証明書の新規発行が必要な場合は「証明書新規発行」を行ってください。失効済み証明書の再発行、および記載内容(主体者DN/SAN)を変更する場合も「証明書新規発行」の手順で行います。
既にサーバ証明書を本システムから発行していて、有効期限内の証明書を更新する場合は「証明書更新発行」を行ってください。
サーバ証明書の失効を行う場合は「証明書失効」を行ってください。
EAB(External Account Binding)は、発行サービスの利用者であることをACMEアカウントに紐付ける認証情報です。
EAB Key IDおよびHMAC秘密鍵はACMEアカウント認証のための秘密情報(アカウント鍵)です。厳重に取り扱ってください。
これらをコマンドライン引数として指定した場合、シェルの履歴(history)に保存される可能性があります。コマンド実行後は、必要に応じて history -c でシェル履歴を削除してください。また、共有端末や複数ユーザーが利用する環境では、EAB資格情報が第三者に参照されないよう十分注意してください。
手続きの種別 | 手続きを行う主な機会 |
証明書新規発行
| 新規にサーバ証明書の発行を必要とする場合。 |
サーバ証明書の記載内容(主体者DN)を変更する場合。 | |
サーバ証明書の記載内容(主体者DN以外:SAN/dNSName等)を変更する場合。 | |
失効済みサーバ証明書の再発行を行う場合。 | |
証明書更新発行 | 有効期限内の証明書を強制的に再発行したい場合。 |
証明書失効 | サーバ証明書が不要になった場合や秘密鍵が危殆化した場合。 |
4-1. サーバ証明書の新規発行手続き
本章では利用管理者のサーバ証明書新規発行手続きの流れについて記述します。
利用管理者は以下の手続きにより証明書の新規発行・取得を行います。
4-1-1. ACMEアカウント作成
certbotを実行し、ACMEアカウントを作成します。
sudo certbot register --debug -vvv --server 'https://secomtrust-acme.com/acme/' --eab-kid xxxxxxxxxxxx --eab-hmac-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --agree-tos -m email@example.com --no-eff-email--debug … certbotの実行時に追加のデバッグ情報を表示します
-vvv … certbotのログ出力レベルを最大にします
--server … certbotが接続するACMEサーバーのURLを指定します
--eab-kid … KeyIDを指定します(設定値は登録担当者から通知されます)
--eab-hmac-key … HMAC秘密鍵を指定します(設定値は登録担当者から通知されます)
--agree-tos … 利用規約に同意します
-m … 証明書発行に関する通知を受け取るためのメールアドレスを指定します
--no-eff-email … EFF(certbot開発元)からのメール配信を拒否します
※EAB(--eab-kid / --eab-hmac-key)の指定が必要なのは、このACMEアカウント作成時のみです。以降の証明書の発行・更新・失効では、保存済みのACMEアカウント情報が使われるため指定は不要です。
※certbotは、同一のACMEサーバに対して複数のACMEアカウントを登録することはできません。既にACMEアカウントを登録済みのサーバで、新しいEABによる登録を行う場合は、先に既存のACMEアカウント情報(/etc/letsencrypt/accounts/ 配下)を削除または退避する必要があります。詳細は「4-2-1. 証明書更新」を参照してください。
4-1-2. 証明書発行
certbotを実行し、サーバ証明書を発行します。
ACMEによるドメイン所有証明はRFC8555に基づき、以下の2方式のいずれかで認証が行われます。
HTTP-01はHTTP通信によるドメインの所有証明、DNS-01は、TXTレコードによるドメイン所有証明を行います。
ドメインを所有しているが、HTTP通信は行えない場合(ファイアウォールの影響やサーバが外部通信を行えないなど)は、DNSレコードによる所有証明を選択してください。
既にサーバへのAレコード紐付けがされており、HTTP(S)リクエストを受信できる状態にしてあれば、HTTP-01を選択してください。
デフォルトはクライアントツールによりますが、通常はHTTP-01が推奨されています。
◆HTTP-01
Apache / Nginxプラグインを利用(推奨)
certbotのApache / Nginxプラグインを利用すると、以下が自動化されます。
使用可能な環境であれば、こちらの利用を推奨します。
・ACME認証用設定の自動追加
・Webサーバ設定の検証(configtest)
・必要なリロードの自動実行
・マルチドメイン(ドメイン複数指定)時の設定を自動調整
Apacheの場合(単一ドメインの場合。マルチドメインは後述)
sudo certbot --apache -d example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
Nginxの場合(単一ドメインの場合。マルチドメインは後述)
sudo certbot --nginx -d example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
-d … 対象ドメインを指定します
--key-type … 使用する暗号鍵のアルゴリズムを指定します
RSAプロファイル(sha256WithRSAEncryption)の場合:--key-type rsa
ECDSAプロファイル(ecdsa-with-SHA384)の場合:--key-type ecdsa --elliptic-curve secp384r1
※--elliptic-curveを省略した場合、certbotの既定値であるsecp256r1(P-256)が使用されます。ECDSAをご利用の場合は必ず--elliptic-curve secp384r1を併せて指定してください。
※certbot 2.0以降は--key-typeの既定値がecdsaです。RSAをご利用の場合も--key-type rsaを明示してください。
※ACME利用申請時に選択した証明書プロファイルに対応する鍵種別を指定してください。--server … certbotが接続するACMEサーバーのURLを指定します
Webrootを指定する場合
既存のWebサーバを停止せず、指定したWebroot(DocumentRoot)配下へcertbotが認証ファイルを自動配置します。
この方式ではWebサーバが外部からHTTP(80)でアクセス可能であることが前提です。
HTTP-01を既存Webサーバで利用する場合、必ず--webrootと-w <Webrootパス>オプションを指定してください。
Webrootのパスは環境(Docker / 仮想ホスト / カスタムDocumentRoot)によって異なるため、
運用対象のWebサーバで実際に公開しているDocumentRootを指定してください。
必要に応じてWebサーバ(Apache / Nginx)側で、以下のパスが外部公開されるよう設定してください。<webroot>/.well-known/acme-challenge/
単一ドメインの例。マルチドメインは後述。
sudo certbot run --webroot -w /path/to/your/webroot -d example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'--webroot … Webサーバのドキュメントルート(webroot)へ認証ファイルを配置する方式を指定します
-w … 認証ファイルを配置するWebサーバのドキュメントルートのパスを指定します
◆DNS-01
DNSプラグイン方式(推奨)
certbotには主要DNSプロバイダ向けのプラグインがあり、DNS-01のTXTレコード設定を自動化できます。
--dns-route53 を使用する場合、事前に AWS の Access Key ID と Secret Access Key を取得し、認証情報ファイルを作成してください。certbot は sudo で実行するため、認証情報は root のホームディレクトリ配下に配置します。
sudo mkdir -p /root/.aws
sudo vi /root/.aws/credentials
sudo vi /root/.aws/config
sudo chmod 700 /root/.aws
sudo chmod 600 /root/.aws/credentials /root/.aws/config/root/.aws/credentials の例:
[default]
aws_access_key_id=AKIAxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/root/.aws/config の例:
[default]
region=ap-northeast-1作成した設定ファイルが反映されているか確認します。
sudo aws sts get-caller-identityAWS IAMユーザーまたはIAMロールには、Route 53のDNS検証レコードの作成・更新・削除に必要な最小限の権限のみを付与することを推奨します。不要な管理者権限やAWS全体へのフルアクセス権限は付与しないでください。また、認証情報がコマンド履歴や運用手順書に平文で残らないようご注意ください。
例:AWS Route53の場合(単一ドメインの場合。マルチドメインは後述)
sudo certbot certonly --dns-route53 -d example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
各プロバイダ向けオプションの一覧は下記のページをご参照ください。User Guide — Certbot 5.7.0 documentation
手動(非推奨)
自動化プラグインが利用できないDNSサービスの場合に限り、手動でTXTレコードを追加する方法があります。
ただしこの方法では自動更新できず、更新スケジュールでも毎回手動作業が必要になるため非推奨です。原則DNSプラグイン方式を使用してください。
sudo certbot run --manual --preferred-challenges dns -d example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'--manual … DNS-01でTXTレコードを手動追加して認証したい場合に利用します
--preferred-challenges dns … DNSチャレンジ(DNS-01)を優先して使用することをcertbotに指示します
実行中にcertbot が要求する値(下図の赤枠)を、DNS TXTレコードに設定します。
_acme-challenge.example.com. 300 IN TXT "xxxxxxxxxxxxxxxxxxxx"
◆マルチドメインを使用する場合
複数のFQDNを1枚のサーバ証明書にまとめる場合は、-dオプションを複数指定します。-d に指定できるFQDNは、ACME利用情報作成申請で登録した利用管理者FQDNおよび登録済みの dNSName(最大8個)のみです。先頭には登録済みの利用管理者FQDN(証明書のCN)を指定してください。未登録のFQDNを指定した場合、証明書の発行は失敗します。
新たなFQDNを追加・変更する場合は、事前にACMEアカウントの登録内容を変更する必要があります。手順は「4-2-1. 証明書更新」を参照してください。
参考:ACMEプロトコル認証情報(EAB)による認証情報管理手順(登録担当者向け)
※画面上のコマンドには一番最初のドメインのみ出力されますが、後述のコマンド例に倣い、対象のドメイン全てをオプションで指定する必要がございます。
対象のドメインをご確認の上、実行をお願いいたします。
また、各認証方式(HTTP-01 / DNS-01)の手順は単一ドメインの場合と同様ですが、すべてのドメインでACME認証が成功する必要があります。
●HTTP-01でマルチドメイン証明書を発行する場合
HTTP-01 の場合、すべての対象ドメインが外部からHTTP(80)でアクセス可能であることが前提となります。
a. Apache / Nginxプラグインでのマルチドメイン-dを複数指定するだけで対応できます。
Apacheの場合
対象ドメイン:example.com, www.example.com
sudo certbot --apache -d example.com -d www.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
Nginxの場合
対象ドメイン:example.com, www.example.com
sudo certbot --nginx -d example.com -d www.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
b.Webrootを指定している場合
別々のDocumentRootを持つ場合は、ドメインごとに-wを対応させる必要があります。
単一Webrootの場合(すべてのドメインで同じWebrootを使用)
対象ドメイン:example.com, www.example.com, sub.example.com
sudo certbot run --webroot -w /path/to/your/webroot -d example.com -d www.example.com -d sub.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
ドメインごとにWebrootが異なる場合
対象ドメイン:example.com, www.example.com, sub.example.com
sudo certbot run --webroot -w /var/www/siteA -d example.com --webroot -w /var/www/siteB -d www.example.com --webroot -w /var/www/siteC -d sub.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
●DNS-01でマルチドメイン証明書を発行する場合
DNS-01の場合は、-dを複数指定するだけで対応できます。
DNSプラグインを使用する場合、各ドメインのTXTレコードが自動作成されます。
例:AWS Route53の場合
対象ドメイン:example.com, www.example.com, sub.example.com
sudo certbot certonly --dns-route53 -d example.com -d www.example.com -d sub.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'
4-1-3. 自動更新について
certbotをインストールすると、多くの環境では自動更新用のsystemd timerが設定されます。ユニット名はインストール方法によって異なります。まず、何が設定されているかを確認してください。
systemctl list-timers --all | grep -i certbotインストール方法 | ユニット名 | 既定の状態 |
snap(3-1) |
| インストール時に有効化されます |
Debian系のOSパッケージ(3-2) |
| インストール時に有効化されます |
Red Hat系のOSパッケージ(3-2) |
| 有効化されていない場合があります |
有効化されていない場合は、確認したユニット名を指定して有効化してください。
sudo systemctl enable --now certbot-renew.timer※Debian系のOSパッケージでは /etc/cron.d/certbot も配置されますが、systemdを使用している環境では実行されない条件が設定されているため、タイマーとの重複実行は発生しません。
更新の判定
タイマーは1日2回チェックを行い、以下のいずれかに該当する場合に更新を実行します。
証明書の有効期限までの残り日数が閾値を下回った場合(既定は30日。更新設定ファイル
/etc/letsencrypt/renewal/<証明書名>.confのrenew_before_expiryで確認できます)証明書が失効している場合。certbotは更新判定時に発行元認証局のOCSPレスポンダへ問い合わせて失効状態を確認し、失効を検出した場合は有効期限に関係なく更新を試みます
なお、certbotは4.1.0以降のバージョンでARI(ACME Renewal Information)に対応しています。ARIは、認証局がACMEクライアントに証明書の最適な更新時期を知らせ、更新処理を分散させて安定させるための仕組みです。ARIに対応したバージョンでは、更新のタイミングがクライアントの設定ではなく、認証局が提示する推奨期間に基づいて決定される場合があります。snapでインストールした場合はcertbot自体が自動的に更新されるため、ご利用のバージョンは certbot --version でご確認ください。
renew(更新)が成功しても、Webサーバはリロードするまで古い証明書を保持します。
deploy-hookあるいは更新フックスクリプトで自動リロードを登録してください(いずれか一方でOKです)。
コマンド例はNginxの場合です。Apacheの場合、nginxをapache2に変更してください。
deploy-hook
sudo certbot renew --deploy-hook "systemctl reload nginx"
フックスクリプト
下記スクリプトを/etc/letsencrypt/renewal-hooks/deploy/myhook.shに配置してください。
#!/usr/bin/env bash
set -euo pipefail
echo "Hook executed at $(date)"
sudo systemctl reload nginx実行権限を必ず付与してください。
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/myhook.sh
4-2. サーバ証明書の更新手続き
本章では利用管理者のサーバ証明書更新手続きの流れについて記述します。
利用管理者は以下の手続きにより証明書の更新・取得を行います。
4-2-1. 証明書更新
certbotを実行し、サーバ証明書を更新します。
sudo certbot renew --key-type rsa--key-type rsa … 使用する暗号鍵のアルゴリズムをRSAに指定します
ECDSAをご利用の場合は--key-type ecdsa --elliptic-curve secp384r1を指定します(--elliptic-curveを省略すると既定のsecp256r1が使用されます)。
※renewコマンドは、一度certbotによる証明書ダウンロードまでが成功した後に実行可能で、前回の選択や設定がそのまま引き継がれて証明書発行を実施します。
更新のスケジュールについては、「4-1-3. 自動更新について」にある自動更新設定を実施してください。
また、certbotは証明書有効期限の残り期間が閾値(既定30日)以上ある場合、証明書発行をスキップします。
そのため、有効期限が30日以上ある証明書を強制的に更新したい場合には、以下を実行してください。
sudo certbot renew --force-renewal --cert-name example.com--force-renewal を付けると、有効期限に関係なく無条件で新しい証明書を発行します。--cert-name には sudo certbot certificates で確認した Certificate Name を指定します。
◆サーバ証明書の記載内容(主体者DN、SAN/dNSName等)を変更する場合
記載内容の変更は certbot renew では行えません。ACMEアカウントに登録された内容そのものを変更する必要があるため、以下の手順で実施してください。
実施前にご確認ください。変更前のサーバ証明書を失効させる必要がある場合は、①より前に「4-3. サーバ証明書の失効手続き」を実施してください。①の停止申請を行った後は、ACMEクライアントからの失効操作ができなくなります(有効なアカウントがありません。 というエラーになります)。
停止申請の後に失効が必要になった場合は、所属機関の登録担当者による失効操作が必要です。登録担当者にご連絡ください。
①登録担当者を通じて、現在のACMEアカウントの停止申請(ACME停止申請TSVファイル)を行います。
②変更後の内容で、ACMEアカウントの登録申請(ACME作成申請TSVファイル)を行い、新しいACMEプロトコル認証情報(EAB)を受領します。
③サーバ上に保存されている既存のACMEアカウント情報を退避します。
sudo mv /etc/letsencrypt/accounts /etc/letsencrypt/accounts.oldcertbotは同一のACMEサーバに対して複数のACMEアカウントを登録できません。③を行わずに④を実行すると、次のエラーで失敗します。
There is an existing account; registration of a duplicate account with this command is currently unsupported.また、③を行っても②で受領した新しいEABを使用せず、変更前のEABで登録しようとした場合は、ACMEサーバから次のエラーが返ります。変更前のEABは既にACMEアカウントへ紐付けられているため、再利用できません。
外部アカウントは連携済みです。[kid:xxxxxxxxxxxx]④受領した新しいEABを用いて「4-1. サーバ証明書の新規発行手続き」を実施します。
主体者DN(CN)を変更せず dNSName のみを追加・変更する場合は、既存の証明書への追加となるため --expand を指定してください。
sudo certbot --nginx --expand -d example.com -d www.example.com --key-type rsa --server 'https://secomtrust-acme.com/acme/'設定の確認
④の実行後、更新設定ファイルの account の値が、新しいACMEアカウントのIDになっていることを確認してください。
sudo cat /etc/letsencrypt/renewal/example.com.confcertbot renew の実行結果は、設定が正しいことの確認になりません。更新時期に達していない証明書はスキップされるため、更新設定が変更前のACMEアカウントを参照したままでも、終了コード0(成功)が返ります。この状態は更新時期(既定では残り30日)に入るまで表面化せず、その時点から自動更新が失敗し続けます。上記のとおり account の値を目視で確認してください。
変更前の証明書の更新設定について
主体者DN(CN)を変更しなかった場合、④で同じ証明書名に対して再発行されるため、更新設定の
accountは自動的に新しいACMEアカウントのIDへ更新されます。削除は不要です。主体者DN(CN)を変更した場合は、変更前の証明書の更新設定が残り、停止済みのACMEアカウントを参照し続けます。この状態では自動更新が毎回失敗するため、変更前の証明書が不要であれば「4-3-1. 証明書失効」の手順2「データの削除」に従って削除してください。
なお、ACMEアカウントを停止しても、既に発行済みのサーバ証明書は失効しません。有効期限まで有効です。
参考:ACMEプロトコル認証情報(EAB)による認証情報管理手順(登録担当者向け)
4-3. サーバ証明書の失効手続き
本章では利用管理者のサーバ証明書失効手続きの流れについて記述します。
利用管理者は以下の手続きにより証明書の失効を行います。
4-3-1. 証明書失効
※手順2「データの削除」(certbot delete)を実行した後は、certbot renew での再発行はできません。失効後に再発行する場合は「4-1. サーバ証明書の新規発行手続き」を再実行してください。
certbotを実行し、サーバ証明書を失効します。
sudo certbot revoke --server 'https://secomtrust-acme.com/acme/' --cert-name example.com--server … certbotが接続するACMEサーバーのURLを指定します
--cert-name … 証明書の名前を指定します
証明書名(--cert-name)の確認方法--cert-nameには、certbotが管理している「Certificate Name」を指定する必要があります。
現在登録されている証明書一覧は、以下のコマンドで確認できます。sudo certbot certificates上記の出力に以下のように表示される
Certificate Name: xxxxが対象の証明書名です。
出力例:Certificate Name: example.com Serial Number: ... Domains: example.com www.example.com Expiry Date: ...データの削除
certbot revokeはCAへの失効申請です。
そのため、これだけではローカルの証明書ラインエージ(更新設定)が残ります。certbotは更新判定時にOCSPで失効状態を確認するため、失効した証明書の更新設定を残したままにすると、次回のタイマー実行時に不要な更新が試行されます。
必ず削除(delete)まで行ってください。sudo certbot delete --cert-name example.comこのコマンドにより、対象ドメインの以下のデータが安全に削除されます。
/etc/letsencrypt/live/<cert-name>//etc/letsencrypt/archive/<cert-name>//etc/letsencrypt/renewal/<cert-name>.conf
補足
サーバの廃止、サーバ障害、ACMEアカウントの停止やアカウント情報の喪失等により、certbotから証明書の失効操作を実施できない場合は、所属機関の登録担当者を通じて「ACME発行証明書の失効申請(TSV)」を行うことができます。
4-4. トラブルシューティング
ACMEアカウントに関する代表的なエラーと対処方法です。文面が似ていても原因が異なるため、メッセージ全体を確認してください。
メッセージ例 | 主な原因 | 対処方法 |
| サーバ上のACMEアカウント情報が存在しない。誤って削除した、別のサーバへ移設した等。 | バックアップから復元してください。復元できない場合は、ACMEアカウントの停止申請と登録申請を行い、新しいEABで再登録する必要があります(「4-2-1. 証明書更新」の記載内容変更の手順と同じです)。 |
| ACMEアカウントが停止されている(証明書の更新時に発生)。 | 停止申請の実施状況を登録担当者にご確認ください。継続して利用する場合は、登録申請を行い新しいEABで再登録してください。 |
|