让加密将域添加到现有证书[关闭]

问题描述 投票:0回答:6

我只是想将域

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

结果:错误,只有证书过期了才能续订。

ssl ssl-certificate lets-encrypt
6个回答
167
投票

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

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

/opt/certbot/certbot-auto certonly --webroot --agree-tos -w /srv/www/letsencrypt/ \
--email [email protected] \
--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

来自文档

--展开“如果现有证书涵盖所请求名称的某些子集,请始终展开并用其他名称替换它。”

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


57
投票

Ubuntu 上的 Apache,使用 Apache 插件:

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

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

如评论中所述,如果您只是添加到现有证书,则需要再次添加现有域 - 否则它将被删除。

编辑

如果运行上述命令时出现错误消息

当前选择的身份验证器的客户端不支持任何能够满足 CA 要求的质询组合。

遵循 Let's Encrypt 社区的这些说明


43
投票

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

sudo letsencrypt --apache -d mydomain.com

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

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

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
并替换即可。


5
投票

我能够通过使用

--cert-name
--expand
选项相结合,为一个域和多个子域设置 SSL 认证。

请参阅官方 certbot-auto 文档:https://certbot.eff.org/docs/using.html

示例:

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

4
投票

这对我有用

 sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d
 domain.com -d www.domain.com
© www.soinside.com 2019 - 2024. All rights reserved.