Linux

Let’s Encrypt で ‘-0001’ がついた証明書データを削除する方法

投稿日:2018年3月2日 更新日:

1. 問題点

Let’s Encrypt で作成した証明書に新たにホスト名を追加するには、certbot certonly コマンドが使用できます。

このコマンドを実行すると、「既存の証明書をそのまま拡張するか?」聞かれる(*1)のですが、ここで「Cancel」を選んでしまうと、「ドメイン名-0001」というような名前の証明書が作成されてしまいます。後になって「拡張(Expand)」を選べばよかったと気付いた時、どう対応すればよいでしょうか?

Let’s Encrypt では、作成された全ての証明書データに対して期限切れメールなどを通知してきますので、使わない証明書データが存在したままですと非常に煩わしいことになります。

また、証明書期限の延長作業を自動化するために、cron で certbot renew コマンドを実行させている場合、対象とする証明書の名前を指定するオプション(--cert-name)を追加しておかないと、全ての証明書データに対して処理が行われてしまいます(それで特に問題なければよいですが)。

*1: 実際は英語で「Do you want to expand and replace this existing certificate with the new certificate? (E)xpand/(C)ancel」と聞いてきます。

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 をそれ程頻繁に使っているわけではないため、「少ない知識でなんとか使っている」という状態でした。しかし、今回の操作を覚えることによって「少し慣れてきたかな」という感触を得ることができました。こういう時が危ないのですが。

📂-Linux

執筆者:labo


  1. 家猫ルク より:

    mydomainの証明書更新がうまく行かず、mydomain-0001を発行して(しまって)現在、-0001の方で運用しています。

    -0001なしの方で運用したいのですが、手順は以下の通りかと思います
    certbot delete mydomain で一旦削除
    certbot certonly –cert-name mydomain で新しい証明書を入手する
    この時、Cancelの方を選べば -0001なしのmydomain 証明書が入手できるのでしょうか

    • labo より:

      コメントありがとうございます。

      「mydomain」という証明書が既にある状態で、再度「mydomain」という名前の証明書を作成しようとした場合、「既に証明書がありますが、これを更新(拡張、入れ替え)しますか?」といった意味のメッセージが表示されると思いますので、Update (Expand, Replace) といった選択肢を選べば既存の証明書を上書きできると思います(certbot のバージョンによって、使われる単語が違っているかもしれません)。
      Cancel を選ぶと「別の名前の証明書を使う」という意味になり、-0001 が付いた証明書が新たに作られると思われます。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux

【Linux】man コマンドの基本的な使い方

Linux をコマンドラインで使う場合、man コマンドでマニュアルを読むことができます(man は manual の略です)。 このページでは、この manコマンドの簡単な使い方について説明します。 …

CentOS

CentOS 8 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …

Linux

コマンドに対してデフォルトで指定されているオプションを調べる

Linux などの UNIX系OS環境では、コマンドを入力して実行する機会が多いと思いますが、それぞれの環境によって、いくつかのコマンドオプションがデフォルトで指定されている場合があります。 ※ ログ …

Linux

【Linux】Info マニュアルの基礎知識と、閲覧に便利な pinfoコマンド

目次1. オンラインマニュアル (manコマンド)と Infoマニュアル (infoコマンド)2. Info マニュアルの基礎知識Info マニュアルのデータpinfo コマンドウェブ版もあります3. …

Linux

ssh-agent の代わりに gpg-agent を使う手順

ssh-agent の代わりに gpg-agent を使う手順について説明します。