個人のWebサーバーにLetsEncrypt証明書をしばらく使用し、数回更新しましたが、正常に機能します。今、私は新しいマシンに移行しています(unixのフレーバーが少し異なります)。
証明書を新しいマシンに転送するにはどうすればよいですか?また、LetsEncryptクライアントをその新しいマシンで動作させるにはどうすればよいですか?
愚かな私は、/etc/letsencrypt
ディレクトリを転送するのと同じくらい簡単だと思いましたが、私は間違っていたようです。
それを行った後、letsencrypt-renewer
を実行すると、非常に奇妙な例外がスローされ、最終的には
TypeError: initializer for ctype 'char *' must be a str or list or Tuple, not unicode
OpenSSL/crypto.py
から。
/etc/letsencrypt/accounts/
の下には、ハッシュのように見える名前のディレクトリがあり、その下には、証明書の作成に使用したマシンのinternal名を含むmeta.jsonファイルがあります。
letsencrypt certonly
を実行すると、oldマシンの内部名とnewマシンの内部名から選択できるアカウント(!)を選択する機会が与えられます。
どちらかを選択し、ドメインの名前を送信すると、同じエラーが発生します(...匿名性のために編集)
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: <mydomain>
Type: urn:acme:error:unauthorized
Detail: Incorrect validation certificate for TLS-SNI-01 challenge.
Requested <hexadeciman29positions>.<morehexadecimal>
<hexadecimal>.acme.invalid from <myip>:443. Received certificate
containing '<mydomain>'
だから...私が無視したいくつかの重要なファイルがあると思います。または私が理解していない何か他のもの。
誰かがこれを行う方法を知っていますか?
したがって、これは少し遅れて、OPには関係がなくなった可能性がありますが、同じ問題に遭遇した人にとっては、次のことがうまくいきました。
letsencrypt --renew-with-new-domains
あるサーバーから別のサーバーに(そして別のLinuxディストリビューションで)証明書を転送したいという同じ問題がありました。私はただrsync
'd /etc/letsencrypt/
ディレクトリを新しいサーバーに移動し、上記のコマンドを実行して、その後のダイアログに従います。