サーバー移行に伴うLet’s Encrypt証明書の移行

はじめに

自宅サーバーをCentOS7からCentOS8に移行した際にLet’s Encryptで取得したSSL証明書も移行しました。
基本的にはデータをただコピーすれば大丈夫のようで、わざわざSSL証明書の失効や再取得を行う必要は無いようです。

旧サーバーにおけるバックアップ作業

Let’s Encryptで取得したSSL証明書関連ファイルは「/etc/encrypt配下に保存されていますので、そのディレクトリを丸ごとバックアップします。
スーパーユーザー権限でパーミッションやオーナー情報ごと保存します。

# tar cvzf letsencrypt_back.tar.gz -C /etc letsencrypt

新サーバーにおける書き戻し作業

Let’s Encrypt証明書のために必要なcertbotパッケージのインストールについては、CentOS7も CentOS8も変わりありません。

# dnf install epel-release
# sed -i -e s/enabled=0/enabled=1/g /etc/yum.repos.d/CentOS-PowerTools.repo
# dnf install certbot certbot-apache

次に、旧サーバー上でバックアップしておいた「letsencrypt_back.tar.gz」を新サーバーに書き戻します。旧サーバー上で所有者情報・パーミッション情報を維持したままアーカイブ・圧縮しましたので、単純に解凍するだけです。
書き戻す場所は旧サーバーと同じ「/etc/letsencrypt」です。

# cp letsencrypt_back.tar.gz /etc/
# tar xvzf /etc/letsencrypt_back.tar.gz ← 2024.04.07 誤記訂正(c→x)

たったこれだけでLet’s Encrypt SSL証明書の移行は完了です。

なお、私の場合は元々webroot方式で証明書を取得および更新していました。
そのような場合で、もし移行に伴ってWEBサーバーのドキュメントルートを変更していた場合は「cerbot renew」コマンド実行時に参照される設定ファイル「/etc/letsencrypt/renewal/example.com.conf」の中身も変えておくと良いでしょう。

# vi /etc/letsencrypt/renewal/example.com.conf
・・・ (省略)
[renewalparams]
authenticator = webroot
account = ************
server = https://acme-v02.api.letsencrypt.org/directory
webroot_path = /path-to-webroot,       ← この部分を新サーバーのWEBドキュメントルートに書き換える
[[webroot_map]]
・・・ (省略)

動作確認

試しに以下のコマンドを実行してみると、ちゃんとSSL証明書を参照できていました。

# certbot certificates

実際に WEBサーバー、メールサーバー等でSSL通信を行ってみましたが、それも問題ありませんでした。
単に旧環境から関連ディレクトリをコピーしただけですが、すべて成功です。

コメント

  1. はしも より:

    有用な情報ありがとうございます。

    ところで、書き戻し作業のコマンドで
     tar cvzf ~

     tar xvzf ~
    の間違いですよね?

タイトルとURLをコピーしました