はじめに
自宅サーバーを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通信を行ってみましたが、それも問題ありませんでした。
単に旧環境から関連ディレクトリをコピーしただけですが、すべて成功です。
コメント
有用な情報ありがとうございます。
ところで、書き戻し作業のコマンドで
tar cvzf ~
は
tar xvzf ~
の間違いですよね?
> はしもさん
ご指摘ありがとうございますm(__)m
単純に間違えておりました
訂正いたしました!