Letsencrypt添加域到现有的证书

我只是试图将域test.example.com添加到已经存在的example.com的证书。 如何将域添加到现有证书并replace旧证书?

我已经尝试了这几个命令

./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中创build了一个全新的证书

 ./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 

从文档 :

–expand“如果现有的证书覆盖所请求的名称的一部分,请始终扩展并用其他名称replace它。

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

这是我注册我的域名:

 sudo letsencrypt --apache -d mydomain.com 

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

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

Ubuntu上的Apache,使用Apache插件:

 sudo certbot certonly --cert-name example.com -d old-domain.com,www.old-domain.com,new-domain.com,www.new-domain.com 

以上命令在Certbot用户指南中更改证书的域名时得到了生动的解释。 请注意,更改证书域名的命令也适用于添加新的域名。

这对我工作

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

您可以通过仅使用./certbot-auto certonly再次运行certbot来replace证书

如果您尝试为已经由现有证书覆盖的域生成证书,系统会提示您input此消息:

 ------------------------------------------------------------------------------- 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? ------------------------------------------------------------------------------- 

只需selectExpand并replace它。

我能够通过使用--cert-name--expand选项来为一个域和多个子域设置SSLauthentication。

请参阅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