更改子域名后无法设置 SSL 终止

更改子域名后无法设置 SSL 终止

我一直在研究一个 Web 应用程序,该应用程序存在于两个具有 SSL 终止的负载平衡的 DigitalOcean droplet 上(使用 DigitalOcean 负载平衡器,而不是我自己的负载平衡 droplet)。

到目前为止,流量已指向 beta.mydomain.com,其中 A 记录指向负载均衡器的 IP。负载均衡器设置为使用 Let's Encrypt 自动生成的 SSL 证书进行 SSL 终止。

问题是,我即将退出测试版,因此我想将网站的 URL 更改为另一个子域名 (chile.mydomain.com)。因此,我:

1.- 更改了我的应用程序的基本路径以使用新域(与此问题无关,但为了完整性我提到它)

2.- 为子域创建新的 A 记录,指向相同的 LB

3.- 重新配置 nginx(在和中nginx.confsites-available以监听新的子域,检查所有内容nginx -t并重新启动。这工作正常,因为当我浏览新域时,网站实际上会响应

如果我浏览到新域,我会收到 SSL 错误(证书无效)。我认为这是因为我之前已经为基本域和子域设置了原始证书,beta因为它可以在证书的 SAN 部分中看到:

DNS Name=beta.mydomain.com
DNS Name=mydomain.com

因此,没什么大不了的:在 LB 上重新创建 HTTP2 规则并使用新的子域,这样我就可以为新的子域获得新的证书。问题是:当我尝试执行此操作时,我收到一条错误消息,指出:

未找到 mydomain.com 域的 NS 记录。

这在之前的测试版子域中没有发生过。我也尝试为子域添加 NS 记录(指向 ns1、2 和 3.digitalocean.com),TTL 较小,现在错误显示:

未找到域的一个或多个 digitalocean 名称服务器

因此,基本上 DO 控制面板拒绝为该域名生成新证书(我从 namecheap 购买了该域名,几个月前将其指向 digitalocean,但一直没动过),尽管该域名完全托管在 digitalocean

我现在完全迷路了,花了好长一段时间才弄清楚。这让我很困惑,因为 beta 子域名从来没有自己的 NS 记录(唯一的 NS 记录是针对基础域名的)

我错过了什么?我确定这是一件非常愚蠢的事情,但我开始变得绝望了

更新

出于沮丧,我尝试启动第二个新的负载均衡器,但结果完全相同。我甚至尝试在新的 LB 中为 beta 子域设置 SSL 终止,该子域已经在第一个 LB(不是新的子域)中运行,但收到​​的消息完全相同。我忘了补充一点,我已经向 DigitalOcean 支持部门开具了工单,但尚未收到回复。

答案1

经过周末的大量思考和多次尝试,我终于收到了 Digital Ocean 的回复。结果发现这不是我这边的错误,而是 DO 后端的一个错误,影响了所有负载均衡器的 Let's Encrypt 证书生成(在特定 droplet 上使用 certbot 是可以的)。周日早上(东部时间)发布了修复程序,问题现已解决。

相关内容