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

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

関連記事

CentOS

CentOS 8 で Snap から certbot パッケージをインストールする

CentOS 8 で Snap から certbot パッケージをインストールする方法について説明します。

docker

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。 例えば、 まず、firewall-cmd コマンドで 8080番ポート …

CentOS

CentOS 6 で yum update した時、remi-php70 レポジトリ内のパッケージの依存性解決ができない場合の解決方法

目次現象解決方法 その1解決方法 その2解決方法 その3まとめ参考 現象 remi-php70 リポジトリを使っている CentOS 6 の環境で PHP関連のパッケージを更新しようと思い、以下のコマ …

Google App Engine

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする手順を紹介します。

Linux

【Linux】 CentOS のマニュアル

CentOS は、RHEL (Red Hat Enterprise Linux)のソースコードから商標や商用パッケージ等を除去してリビルドした RHELクローンです。 マニュアルを見る場合は、RHEL …