Certbot 将 www 域添加到现有域证书

Certbot 将 www 域添加到现有域证书

我已经安装了 SSL 证书让我们加密证书机器人在我的 Apache 服务器上使用 Debian 8,遵循 Let's Encrypt 自己的文档中的教程:https://certbot.eff.org/#debianjessie-apache

$ certbot --apache

您需要指定要为其安装证书的域,但我只添加了example.com域。现在我想添加www.example.com,但找不到如何执行此操作。

答案1

现有的答案是正确的,但并不是每个人都清楚(我不清楚)发生了什么,尤其是在阅读了官方 certbot 文档就此主题而言。

首先,您需要列出现有的证书,只是为了清楚您已经拥有的证书:

sudo certbot certificates

您会注意到每个证书都有一个“名称”。假设您有一个名为 的证书example.com,并且它还有一个域证书example.com。您可以使用该certonly选项仅更新证书,然后使用--cert-name选项指定您正在更新哪个证书不要忘记包括您的现存的域以及新的您正在添加的域。

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

如果您相信 certbot 能够找出正确的证书(类似于 Google 过去用于搜索的“我感觉很幸运”按钮),那么您似乎可以跳过--cert-name并使用它--expand。这样,certbot 将通过选择具有您指定的域的子集(真子集 - 文档中称为“严格子集”)的证书来找到您所引用的证书。

sudo certbot certonly --expand -d example.com,www.example.com

在所有这些中,您是否需要--webroot取决于您的特定配置。

答案2

更新:您现在可以通过传递来做到这一点--expand标志来做到这一点(请参阅文档):

--expand告诉 Certbot 使用包含所有旧域和一个或多个其他新域的新证书更新现有证书。

这个答案举个例子。


简而言之:你不能。

您在初始配置期间指定的域将成为最终证书的组成部分,然后由 Let's Encrypt 签名。您无法通过添加其他域甚至子域来追溯更改它,因为这会破坏其有效性。

解决办法:从头开始! (对于 certbot 来说并不是什么大问题)

答案3

使用这个命令:certbot modifier --expand,就像下面这样:

sudo certbot-auto certonly --webroot -w /srv/www/htmlroot/ --expand -d domain1.com -d domain2.com -d www.domain1.com

答案4

我更喜欢“独立”服务器模式,因为我将 nginx.conf 设置为重定向端口 80。并且 certbot 需要端口 80,因此在运行此模式之前您可能需要“停止”nginx(或 apache)。独立的另一个好处是,您不需要创建目录来获取证书。

certbot certonly --standalone --expand -d example.com -d www.example.com

看来 certbot 足够聪明,可以自动找出您要扩展的证书。

但是,如果您只指定-d www.example.com它可能会为“www”创建一个单独的证书,这可能不是您想要的。检查与certbot certificates.如果发生这种情况,您可以通过删除 www 和非 www 证书来重新开始,然后...

certbot certonly --standalone -d example.com -d www.example.com

相关内容