我已经将 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/
是名称类似于哈希的目录,其下有一个 meta.json 文件,其中包含内部的我用来创建证书的机器的名称。
运行letsencrypt certonly
让我有机会选择一个帐户(!),我可以从中进行选择老的机器的内部名称和新的机器内部名称。
选择其中任意一个并提交我的域名,都会产生相同的错误(已编辑......匿名)
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>'
所以……我猜我忽略了一些关键文件。或者还有其他我不明白的东西。
有谁知道如何做到这一点?
答案1
所以这有点晚了,可能与 OP 不再相关,但对于遇到同样问题的任何人来说,以下方法对我有用:
letsencrypt --renew-with-new-domains
我遇到了同样的问题,想要将证书从一台服务器转移到另一台服务器(并使用不同的 Linux 发行版)。我只是rsync
将/etc/letsencrypt/
目录转移到新服务器,运行上述命令,然后按照对话框进行操作。