Let’s encrypt で別サーバーで稼働している証明書を取得

Let’s encrypt でDNS認証で、別サーバーで稼働している証明書を取得

今回サーバー移設の話がありました。レンサバで運用していて別のクラウドに移設するとの事です。WebコンテンツやDBは移設側にコピーできたのですが、レンタルサーバーで運用している旧サーバーのSSL証明書がSSH接続できるがホームディレクトリ以外に移動できないので、Let’s encrypt で発行しているSSL証明書がダウンロードできません。

移設後のサーバーにSSL証明書を導入したいが、旧サーバーのSSL証明書がダウンロードできなし、新しいサーバー側でSSL証明書を発行してもDNSを切り替えていないので古いサーバーを見に行くのでこの方法も駄目でした

Let’s encrypt で発行する時に「–preferred-challenges dns」のオプションを利用すれば証明書を発行する時にDNS認証にかわりますので、この方法で発行します

DNS認証でSSL証明を取得する方法

1.SSL証明書を導入したいサーバーで以下のコマンドを実行します。

書式:certbot certonly –manual –preferred-challenges dns -d [ドメイン名]

$ certbot certonly --manual --preferred-challenges dns -d example.com

Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:

do49rff4kr9fEppRTkCDiwodm834DKDLA_kdUDS

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

2.上記のコマンドを入力するとDNSサーバーに以下のように設定します。
ホスト名は「_acme-challenge.example.com」で、TXTコードを「do49~~」から始まる文字列を設定します。
「do49~~」のコードは乱数で発行されるので、その都度変わります

ホスト名 種別 内容
_acme-challenge.example.com TXT do49rff4kr9fEppRTkCDiwodm834DKDLA_kdUDS

3.しばらくするとDNSにTXTコードが反映されるので、それまでは「Enter」キーを押さず待っておきます。
4.digコマンド等でDNSが反映したのを確認します

$ dig -t TXT _acme-challenge.example.com

;; ANSWER SECTION:
_acme-challenge.example.com. 3600 IN TXT     "do49rff4kr9fEppRTkCDiwodm834DKDLA_kdUDS"

5.DNSが反映したら「Enter」キーを押して、SSL証明書を発行します。証明書が発行されましたらApacheに設定すればOKです

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example/privkey.pem
   Your cert will expire on 2022-11-01. To obtain a new or tweaked