Letsencrypt 将域添加到现有证书
Letsencrypt add domain to existing certificate
我只是想将域 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 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 "If an existing cert covers some subset of the requested names, always expand and replace it with the additional names."
如果您是 运行 nginx,请不要忘记重新启动服务器以加载新证书。
这是我注册域名的方式:
sudo letsencrypt --apache -d mydomain.com
然后可以对其他域使用相同的命令并按照说明操作:
sudo letsencrypt --apache -d mydomain.com,x.mydomain.com,y.mydomain.com
这对我有用
sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d
domain.com -d www.domain.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 证书。
请参阅 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
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中解释的很形象。请注意,更改证书域名的命令也适用于添加新域名。
编辑
如果运行上面的命令给你错误信息
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
我只是想将域 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 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 "If an existing cert covers some subset of the requested names, always expand and replace it with the additional names."
如果您是 运行 nginx,请不要忘记重新启动服务器以加载新证书。
这是我注册域名的方式:
sudo letsencrypt --apache -d mydomain.com
然后可以对其他域使用相同的命令并按照说明操作:
sudo letsencrypt --apache -d mydomain.com,x.mydomain.com,y.mydomain.com
这对我有用
sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d
domain.com -d www.domain.com
您可以再次使用 ./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
并替换它。
通过结合使用 --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
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中解释的很形象。请注意,更改证书域名的命令也适用于添加新域名。
编辑
如果运行上面的命令给你错误信息
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.