Let's Encryptで証明書を発行している複数のサブドメインのうち、ひとつを削除。

ウェブサーバで3つのサブドメインを運用していて、それらにHTTPS接続できるように、certbotを利用して Let's Encrypt からSSL証明書を取得していました。

そのうちひとつのサブドメインが不要になったので、それを削除したときの手順のメモ。サイト設定の削除と、証明書の削除をせねばなりません。

【うちの環境】
  • Ubuntu Server 24.04.3
  • Apache2.4.58
  • certbot 2.9.0

例えば3つのサブドメイン - sub1.example.com、sub2.example.com、sub3.example.com を運用しているとして、このうち sub2.example.com が不要になったので、その設定諸々を削除したい。

まず、証明書の情報を確認する。以下のコマンドを管理者権限で実行。

certbot certificates

出力の Domains: の行を見てみると、

    Domains: sub1.example.com sub2.example.com sub3.example.com

と表示されたので、同じ証明書に3つのサブドメインが含まれていることがわかる。

続いて以下のような感じで作業を進めれば、ダウンタイムを最小限に抑えられるのではないかな。

  1. Apacheの不要なサブドメイン(sub2)のサイト設定を無効化または削除。
  2. Apache再起動。
  3. certbotで、残すサブドメイン向けに新たな証明書を発行。

不要なサブドメイン・sub2 のサイト設定を無効化。

a2dissite sub2.conf
a2dissite sub2-le-ssl.conf

※ sub2.conf : sub2.example.com 用の VirtualHost設定ファイル。/etc/apache2/sites-available/ にある筈。

※ sub2-le-ssl.conf : certbot --apache コマンドでHTTPS化している場合、sub2.conf から自動的に生成されるSSL接続用サイト設定ファイル。

で、Apacheを再起動。

systemctl restart apache2

これで sub2.example.com にはアクセスできなくなったのだけれど、証明書には、アクセス不能な(もう存在しない)サブドメイン sub2 の認証情報が含まれたままなので、このままだと証明書の更新の際などにエラーが出る。

なので、現在有効なサブドメイン(sub1 と sub3)に対して、削除した sub2 を含まない新しい証明書を再発行(既存のものを上書き更新)する。

certbot --apache -d sub1.example.com -d sub3.example.com

以上で作業完了。

sub1、sub3 のSSL接続用サイト設定ファイル(sub1-le-ssl.confおよびsub2-le-ssl.conf)に手動で変更を加える必要は無し。

いちおう、証明書更新時にエラーが出ないか確認。

certbot renew --dry-run

以下のように出力されたら、問題なし。

Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/your_site_domain/fullchain.pem (success)

ということで。

カテゴリ: