目次
1. 問題点
Let’s Encrypt で作成した証明書に新たにホスト名を追加するには、certbot certonly
コマンドが使用できます。
このコマンドを実行すると、「既存の証明書をそのまま拡張するか?」聞かれる(*1)のですが、ここで「Cancel」を選んでしまうと、「ドメイン名-0001」というような名前の証明書が作成されてしまいます。後になって「拡張(Expand)」を選べばよかったと気付いた時、どう対応すればよいでしょうか?
Let’s Encrypt では、作成された全ての証明書データに対して期限切れメールなどを通知してきますので、使わない証明書データが存在したままですと非常に煩わしいことになります。
また、証明書期限の延長作業を自動化するために、cron で certbot renew
コマンドを実行させている場合、対象とする証明書の名前を指定するオプション(--cert-name
)を追加しておかないと、全ての証明書データに対して処理が行われてしまいます(それで特に問題なければよいですが)。
2. 対応方法
「ドメイン名-0001」という証明書データを削除します。ここでは、例として「example.com-0001」であったとします。
念のため、存在している証明書を全て表示します。
$ sudo certbot certificates
この結果、「example.com」と「example.com-0001」が表示されたとします。
いらない証明書データを削除する
以下のコマンドで、example.com-0001 の方を削除します。
$ sudo certbot delete --cert-name example.com-0001
3. 間違えて生成した ‘-0001’ の方を Webサイトで使用していて、後から ‘-0001’ なしの証明書を使うことになった場合の手順
実際にあった話しなのですが、ホスト名を追加する際に間違えて’-0001′ 付きの名前で証明書を作成してしまい、仕方ないのでこちらを Webサーバーで使用していたという環境がありました。しかし、後から ‘-0001’ なしの証明書に戻したくなったという場合の手順です。
(1) Webサーバーを止める
Apache の場合
$ sudo systemctl stop httpd.service
nginx の場合
$ sudo systemctl stop nginx.service
(2) “ドメイン名-0001” という名前で作成された証明書データを削除する
$ sudo certbot delete --cert-name ドメイン名-0001
(3) 証明書を再発行する
certbot certonly
コマンドを実行して証明書を発行します。
- 勝手に “-0001” 付きの証明書が作られないように、
--cert-name
オプションで名前を指定しておいた方が確実です。 - この際、既存の証明書を拡張するかどうか聞かれたら、「拡張(Expand)」を選びます。
(4) SSL証明書のパスを記述した設定ファイルを修正する
Webサーバーの設定ファイルで、SSL証明書のパスを指定しているところを書き換えます。
“ドメイン名-0001” から “ドメイン名” に変更します。
(5) Webサーバーを開始する
Apache の場合
$ sudo systemctl start httpd.service
nginx の場合
$ sudo systemctl start nginx.service
4. おわりに
Let’s Encrypt をそれ程頻繁に使っているわけではないため、「少ない知識でなんとか使っている」という状態でした。しかし、今回の操作を覚えることによって「少し慣れてきたかな」という感触を得ることができました。こういう時が危ないのですが。
mydomainの証明書更新がうまく行かず、mydomain-0001を発行して(しまって)現在、-0001の方で運用しています。
-0001なしの方で運用したいのですが、手順は以下の通りかと思います
certbot delete mydomain で一旦削除
certbot certonly –cert-name mydomain で新しい証明書を入手する
この時、Cancelの方を選べば -0001なしのmydomain 証明書が入手できるのでしょうか
コメントありがとうございます。
「mydomain」という証明書が既にある状態で、再度「mydomain」という名前の証明書を作成しようとした場合、「既に証明書がありますが、これを更新(拡張、入れ替え)しますか?」といった意味のメッセージが表示されると思いますので、Update (Expand, Replace) といった選択肢を選べば既存の証明書を上書きできると思います(certbot のバージョンによって、使われる単語が違っているかもしれません)。
Cancel を選ぶと「別の名前の証明書を使う」という意味になり、-0001 が付いた証明書が新たに作られると思われます。