Letsencrypt将域添加到现有证书

时间:2016-07-11 08:30:43

标签: ssl ssl-certificate lets-encrypt

我只是尝试将域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

结果:错误,我只能在证书过期后续订。

6 个答案:

答案 0 :(得分:111)

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

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

/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

  

- 展开"如果现有证书涵盖了所请求名称的某些子集,请始终展开并将其替换为其他名称。"

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

答案 1 :(得分:27)

这是我注册我的域名的方式:

sudo letsencrypt --apache -d mydomain.com

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

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

答案 2 :(得分:19)

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生动地解释了上述命令。请注意,更改证书域名的命令也适用于添加新域名。

修改

如果运行上述命令,则会显示错误消息

  

使用当前选定的身份验证器的客户端不支持满足CA的任何挑战组合。

关注these instructions from the Let's Encrypt Community

答案 3 :(得分:5)

您只需使用./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并替换它。

答案 4 :(得分:4)

这对我有用

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

答案 5 :(得分:4)

我可以使用--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