更改 Lets Encrypt SSL 证书的基本域名

Change base domain name for Lets Encrypt SSL certificate

我已经使用 Let's Encrypt 允许我在我的服务器上设置 SSL/HTTPS。

问题是我也 运行 了一些子域,我在初始安装中包含了这些子域,但现在回过头来看 - 证书详细信息显示它是颁发给我的一个子域的 -域。

我想将其更改为我的基本域,但我不确定如何操作。

我试过了运行宁letsencrypt-auto --apache -d example.me -d www.example.me -d mysql.example.me

这完成了整个过程,但没有改变任何东西,因为证书已经颁发。

我现在如何更改证书,或重新颁发证书以便将它们颁发到我的基本域?

您可以撤销您当前的证书并重新颁发 -d example.com 首先是子域。

要撤销做:

$ letsencrypt revoke --cert-path example-cert.pem

并重新发出您已有的命令。

注意: 请注意使用限制,否则您可能会在一段时间内不再颁发更多证书。

首先明确一下你的问题:

the certificate details show that it was issued to one of my sub-domains.

您可以获得多个域的单个证书(多个 -d 参数),并且只有一个被列为 CN(通用名称),其他只是 SAN(主题替代名称)。当前 LE 的限制是一个证书中有 100 个域名。我不确定官方 LE 客户端,但在我使用 simp_le 的情况下,指定的最后一个域用作 CN,其他域用作 SAN。看起来你想让你的主域名变成CN?然后把它作为最后一个 -d 参数试试。

现在,如果您 运行 特定域的 LE 客户端并且您的系统上已经存在相同的证书,那么 LE 会检查证书的有效期,如果(默认情况下)超过 30,则不执行任何操作天到期。这就是为什么您可以将 LE 命令放入 cron 作业并让它每天 运行 并且仅在需要时更新证书。

How can I change the certificates now, or reissue them so that they are issued to my base domain?

只需从您的系统中删除旧证书,然后再次尝试执行 LE 命令。请注意 -d 命令以获得所需域作为 CN 而不是 SAN。

小心,不要点击 LE CA's rate limits(每个域每周 20 个证书)...

您可以简单地强制续订:

./certbot --apache -d example.me -d www.example.me -d mysql.example.me --force-renewal

参考:https://community.letsencrypt.org/t/change-base-domain-name-for-lets-encrypt-ssl-certificate-in-certbot/16955/2

您可以只使用 --expand 指令将额外的子域作为 SAN 添加到现有证书(这可能只是在幕后撤销和重新颁发证书)。

请确保包括您现有的所有域。

因此,如果您最初要求:

-d example.com -d www.example.com

...您可以通过发出新命令 click.example.com 使用新的子域扩展它:

--expand -d example.com -d www.example.com -d click.example.com