サーバー移行に伴う 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 cvzf /etc/letsencrypt_back.tar.gz

たったこれだけで 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通信を行ってみましたが、それも問題ありませんでした。
単に旧環境から関連ディレクトリをコピーしただけですが、すべて成功です。

コメント

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