我只是尝试将域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
结果:错误,我只能在证书过期后续订。
答案 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
- 展开"如果现有证书涵盖了所请求名称的某些子集,请始终展开并将其替换为其他名称。"
如果您正在运行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的任何挑战组合。
答案 3 :(得分:5)
您只需使用./certbot-auto certonly
如果您尝试为现有证书已涵盖的域生成证书,系统将提示您显示此消息:
-------------------------------------------------------------------------------
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