我只是想将域
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 [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,请不要忘记重新启动服务器以加载新证书。
Ubuntu 上的 Apache,使用 Apache 插件:
sudo certbot certonly --cert-name example.com -d m.example.com,www.m.example.com
上述命令在有关更改证书域名的Certbot用户指南中有生动的解释。请注意,更改证书域名的命令也适用于添加新域名。
如评论中所述,如果您只是添加到现有证书,则需要再次添加现有域 - 否则它将被删除。
编辑
如果运行上述命令时出现错误消息
当前选择的身份验证器的客户端不支持任何能够满足 CA 要求的质询组合。
这就是我注册域名的方式:
sudo letsencrypt --apache -d mydomain.com
然后就可以对其他域使用相同的命令并按照说明进行操作:
sudo letsencrypt --apache -d mydomain.com,x.mydomain.com,y.mydomain.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 认证。
请参阅官方 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
这对我有用
sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d
domain.com -d www.domain.com