我已使用 Let's Encrypt 来在我的服务器上设置 SSL/HTTPS。
问题是我也运行了许多子域,我在初始安装中包含了这些子域,但现在回头看 - 证书详细信息显示它是颁发给我的一个子域的。
我想将其更改为我的基本域,但我只是不确定如何执行此操作。
我尝试过跑步
letsencrypt-auto --apache -d example.me -d www.example.me -d mysql.example.me
这完成了整个过程,但没有改变任何东西,因为证书已经颁发了。
我现在如何更改证书,或重新颁发证书以便将它们颁发给我的基域?
您可以简单地强制续订:
./certbot --apache -d example.me -d www.example.me -d mysql.example.me --force-renewal
您可以撤销当前的证书并重新颁发 -d example.com 首先是子域。
要撤销请执行以下操作:
$ letsencrypt revoke --cert-path example-cert.pem
并使用您已有的命令重新发出。
注意: 请注意使用限制,否则您可能最终无法在一段时间内颁发更多证书。
首先我们要明确你的问题:
证书详细信息显示它已颁发给我的子域之一。
您可以获得多个域的单个证书(多个 -d 参数),并且只有一个被列为 CN(通用名称),其他只是 SAN(主题备用名称)。当前 LE 的限制是一个证书中包含 100 个域名。我不确定官方 LE 客户端,但在我使用 simp_le 的情况下,指定的最后一个域用作 CN,其他域用作 SAN。看来您想让您的主域名成为CN?然后尝试将其作为最后一个 -d 参数。
现在,如果您为特定域运行 LE 客户端,并且您的系统上已存在相同的证书,则 LE 会检查证书的有效期,如果(默认情况下)距离到期时间超过 30 天,则 LE 不执行任何操作。这就是为什么您可以将 LE 命令放入 cron 作业并让它每天运行,并且仅在需要时更新证书。
我现在如何更改证书,或重新颁发证书以便将它们颁发给我的基域?
只需从系统中删除旧证书并尝试再次执行 LE 命令即可。请注意 -d 命令以获得所需的域为 CN 而不是 SAN。
小心,不要达到 LE CA 的速率限制(每个域每周 20 个证书)...
您可以使用
--expand
指令将其他子域作为 SAN 添加到现有证书(这可能只是在幕后撤销并重新颁发证书)。
请确保包含您所有现有的域。
所以,如果您最初要求:
-d example.com -d www.example.com
...您可以通过发出新命令来使用新的子域
click.example.com
来扩展它:
--expand -d example.com -d www.example.com -d click.example.com
这对我使用最新的 certbot 版本有用:
sudo certbot certonly --cert-name foo.com --standalone -d foo.com -d bar.net --force-renewal
我向
foo.com
、bar.com
和 baz.com
颁发了证书,并且想要删除 baz.com
。