LetsEncrypt 具有多域和多子域的 SSL 证书
LetsEncrypt SSL Certificates with multi domains and multi subdomains
我们多年来一直在使用 PositiveSSL 多域证书,并且一直运行良好。在该证书下,我们有,例如:
域 1:
mail.domain1.com
www.domain1.com
domain1.com
域 2:
mail.domain2.fr
www.domain2.fr
domain2.fr
等,共有 5 个不同的域。
现在,由于我们要扩展我们的域基础并且当前的证书即将到期,我们正在密切关注 Lets-Encrypt。
然而,在我开始之前,我想知道一些事情:
(1)- 是否每个子域(mail.
www.
等)及其各自的主要域都必须在主证书中列出?我问这个主要是因为 (a) 这是我最初的理解,以及 (b) 使用 Lets-Encrypt 的验证阶段会有所不同(preferred-challenges=dns
而不是默认基于 apache),这将导致我添加每个 domain/subdomain 的 DNS 记录。
(2)- 如果确实需要(如果我别无选择只能使用 preferred-challenges=dns
,在下一次证书续订时(即 < 90 天),DNS 记录是否仍然有在场?我问这个是因为上次我在创建后留下了 DNS 记录,在 DNS 传播时间后无法再访问邮件服务器。我很确定这是因为我的设置错误,但是这是我宁愿避免的风险。
(3)- 如果我在这里遗漏了你有更好的建议可以给我,请告诉我。
在 https://websocket.email 我使用主题备用名称 (SAN) 机制来处理 api.websocket.email 等。我不必配置 DNS 记录并使用 http 质询。您执行此操作的确切方式取决于您的 acme 客户端。我的选项在配置部分 "alternative names".
下列出
编辑:为了澄清,我需要 DNS 记录将我的子域指向同一台服务器,我正在使用这个 acme 客户端 - https://man.openbsd.org/acme-client.conf.5 并设置备用名称选项。获取我的证书时,我可以在我的 http 日志中看到,lets-encrypt 为每个域获取一个挑战文件以证明我拥有它。
万一有人有类似的问题或计划,这是我在此 process 期间学到的:
- 必须包含证书将用于的每个域名。 Let's Encrypt 将验证证书中的每个域名。
- 如果使用 DNS-01 验证,所有这些都需要添加 DNS 记录。这样,记录将需要每 90 天(或您选择的任何时间范围)重新验证域。这将需要每次添加一个新的 TXT 记录。保留以前验证的旧 TXT 记录将不起作用,值每次都会更改。
- 还有 HTTP-01 和 TLS-SNI-01 质询类型。如果您已经有一个 Apache 实例 运行ning,我建议您使用 HTTP-01。
- 如果您在 运行 发送邮件的机器上没有网络服务器。domain1.com 您仍然可以使用 HTTP-01。 Certbot 有一个称为“独立”模式的功能,它可以启动一个小型专用网络服务器来回答 HTTP-01 挑战以提供证书。
- 要在非网络服务器上使用 HTTP 或 TLS-SNI 验证,您需要 运行 类似于:
certbot certonly --standalone -d mail.example.com
。您仍然需要在防火墙中打开端口 80 或 443 才能使用此方法,但您不需要在这些端口上使用服务器 运行ning。如果您只想打开一个端口,您可以明确指定挑战类型,例如--preferred-challenges http
使用端口 80 或 --preferred-challenges tls-sni
使用端口 443。
我们多年来一直在使用 PositiveSSL 多域证书,并且一直运行良好。在该证书下,我们有,例如:
域 1:
mail.domain1.com
www.domain1.com
domain1.com
域 2:
mail.domain2.fr
www.domain2.fr
domain2.fr
等,共有 5 个不同的域。
现在,由于我们要扩展我们的域基础并且当前的证书即将到期,我们正在密切关注 Lets-Encrypt。
然而,在我开始之前,我想知道一些事情:
(1)- 是否每个子域(mail.
www.
等)及其各自的主要域都必须在主证书中列出?我问这个主要是因为 (a) 这是我最初的理解,以及 (b) 使用 Lets-Encrypt 的验证阶段会有所不同(preferred-challenges=dns
而不是默认基于 apache),这将导致我添加每个 domain/subdomain 的 DNS 记录。
(2)- 如果确实需要(如果我别无选择只能使用 preferred-challenges=dns
,在下一次证书续订时(即 < 90 天),DNS 记录是否仍然有在场?我问这个是因为上次我在创建后留下了 DNS 记录,在 DNS 传播时间后无法再访问邮件服务器。我很确定这是因为我的设置错误,但是这是我宁愿避免的风险。
(3)- 如果我在这里遗漏了你有更好的建议可以给我,请告诉我。
在 https://websocket.email 我使用主题备用名称 (SAN) 机制来处理 api.websocket.email 等。我不必配置 DNS 记录并使用 http 质询。您执行此操作的确切方式取决于您的 acme 客户端。我的选项在配置部分 "alternative names".
下列出编辑:为了澄清,我需要 DNS 记录将我的子域指向同一台服务器,我正在使用这个 acme 客户端 - https://man.openbsd.org/acme-client.conf.5 并设置备用名称选项。获取我的证书时,我可以在我的 http 日志中看到,lets-encrypt 为每个域获取一个挑战文件以证明我拥有它。
万一有人有类似的问题或计划,这是我在此 process 期间学到的:
- 必须包含证书将用于的每个域名。 Let's Encrypt 将验证证书中的每个域名。
- 如果使用 DNS-01 验证,所有这些都需要添加 DNS 记录。这样,记录将需要每 90 天(或您选择的任何时间范围)重新验证域。这将需要每次添加一个新的 TXT 记录。保留以前验证的旧 TXT 记录将不起作用,值每次都会更改。
- 还有 HTTP-01 和 TLS-SNI-01 质询类型。如果您已经有一个 Apache 实例 运行ning,我建议您使用 HTTP-01。
- 如果您在 运行 发送邮件的机器上没有网络服务器。domain1.com 您仍然可以使用 HTTP-01。 Certbot 有一个称为“独立”模式的功能,它可以启动一个小型专用网络服务器来回答 HTTP-01 挑战以提供证书。
- 要在非网络服务器上使用 HTTP 或 TLS-SNI 验证,您需要 运行 类似于:
certbot certonly --standalone -d mail.example.com
。您仍然需要在防火墙中打开端口 80 或 443 才能使用此方法,但您不需要在这些端口上使用服务器 运行ning。如果您只想打开一个端口,您可以明确指定挑战类型,例如--preferred-challenges http
使用端口 80 或--preferred-challenges tls-sni
使用端口 443。