Letsencrypt 将域添加到现有证书

Letsencrypt add domain to existing certificate

我只是想将域 test.example.com 添加到 example.com 已经存在的证书中。如何将域添加到现有证书并替换旧证书?

这几个命令我都试过了

./letsencrypt-auto certonly --cert-path /etc/letsencrypt/archive/example.com --expand -d test.example.com

./letsencrypt-auto certonly -d example.com --expand -d test.example.com

结果:两者都在新文件夹中创建了一个全新的证书 test.example.com-0001

./letsencrypt-auto certonly --renew-by-default  --expand -d test.example.com

结果:错误文件夹 test.example.com 已经存在。

./letsencrypt-auto renew --expand -d orange.fidka.com

结果:错误,我只能在我的证书过期时更新。

您需要指定所有名称,包括已注册的名称。

我最初使用以下命令来注册一些证书:

/opt/certbot/certbot-auto certonly --webroot --agree-tos -w /srv/www/letsencrypt/ \
--email me@example.com \
--expand -d example.com,www.example.com

... 刚才我成功地使用了以下命令来扩展我的注册以包含一个新的子域作为 SAN:

/opt/certbot/certbot-auto certonly --webroot --agree-tos -w /srv/www/letsencrypt/ \
--expand -d example.com,www.example.com,click.example.com

来自documentation

--expand "If an existing cert covers some subset of the requested names, always expand and replace it with the additional names."

如果您是 运行 nginx,请不要忘记重新启动服务器以加载新证书。

这是我注册域名的方式:

sudo letsencrypt --apache -d mydomain.com

然后可以对其他域使用相同的命令并按照说明操作:

sudo letsencrypt --apache -d mydomain.com,x.mydomain.com,y.mydomain.com

这对我有用

 sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d
 domain.com -d www.domain.com

您可以再次使用 ./certbot-auto certonly

运行 certbot 替换证书

如果您尝试为现有证书已涵盖的域生成证书,系统将提示您:

-------------------------------------------------------------------------------
You have an existing certificate that contains a portion of the domains you
requested (ref: /etc/letsencrypt/renewal/<domain>.conf)

It contains these names: <domain>

You requested these names for the new certificate: <domain>,
<the domain you want to add to the cert>.

Do you want to expand and replace this existing certificate with the new
certificate?
-------------------------------------------------------------------------------

刚刚选择Expand并替换它。

通过结合使用 --cert-name--expand 选项,我能够为域和多个子域设置 SSL 证书。

请参阅 https://certbot.eff.org/docs/using.html

上的官方 certbot-auto 文档

示例:

certbot-auto certonly --cert-name mydomain.com.br \
--renew-by-default -a webroot -n --expand \
--webroot-path=/usr/share/nginx/html \
-d mydomain.com.br \
-d www.mydomain.com.br \
-d aaa1.com.br \
-d aaa2.com.br \
-d aaa3.com.br

Ubuntu 上的 Apache,使用 Apache 插件:

sudo certbot certonly --cert-name example.com -d m.example.com,www.m.example.com

上面的命令在Certbot user guide on changing a certificate's domain names中解释的很形象。请注意,更改证书域名的命令也适用于添加新域名。

编辑

如果运行上面的命令给你错误信息

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

关注these instructions from the Let's Encrypt Community