Ssl

更改子域後無法設置 SSL 終止

  • October 29, 2018

我已經在一個 Web 應用程序上工作了一段時間,該應用程序在兩個負載平衡的 DigitalOcean 液滴(使用 DigitalOcean 負載平衡器,而不是我自己的負載平衡液滴)上使用 SSL 終止。

到目前為止,流量已指向 beta.mydomain.com,其中一條 A 記錄指向負載均衡器的 IP。負載均衡器設置為使用 Let’s Encrypt 自動生成的 SSL 證書進行 SSL 終止。

問題是我要從測試版中移出,所以我想將網站的 URL 更改為另一個子域 (chile.mydomain.com)。因此,我:

1.- 更改了我的應用程序的基本路徑以使用新域(與此問題無關,但為了完整起見我提到它)

2.-為子域創建了一條新的A記錄,指向同一個LB

3.- 重新配置 nginx(在nginx.conf和中sites-available)以偵聽新的子域,檢查所有內容nginx -t並重新啟動。這工作正常,因為當我瀏覽到新域時站點實際上會響應

如果我瀏覽到新域,我會收到 SSL 錯誤(無效證書)。我認為這是因為我之前已經為基域和子域設置了原始證書,beta因為它可以在證書的 SAN 部分中看到:

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

所以,沒什麼大不了的:在 LB 上重新創建 HTTP2 規則並使用新的子域,這樣我就得到了新子域的新證書。這就是問題所在:當我嘗試這樣做時,我收到一條錯誤消息:

未找到 mydomain.com 域的 NS 記錄。

這在以前的 beta 子域中沒有發生。我也嘗試使用小 TTL 為子域添加 NS 記錄(指向 ns1、2 和 3.digitalocean.com),現在錯誤顯示為:

未找到域的一個或多個 digitalocean 名稱伺服器

所以基本上 DO 控制面板拒絕為域生成新證書(我作為註冊商從 namecheap 購買,幾個月前將其指向 digitalocean 並且沒有觸及它),即使該域完全託管在 digitalocean

我現在完全迷失了,現在試圖解決這個問題已經有一段時間了。這讓我感到困惑,因為 beta 子域從來沒有它自己的 NS 記錄(唯一的 NS 記錄用於基本域)

我在這裡想念什麼?我敢肯定這真的很愚蠢,但我開始變得絕望

更新

出於沮喪,我嘗試啟動第二個新的負載均衡器,並獲得了完全相同的結果。我什至嘗試在新的 LB 中為已經在第一個 LB(不是新的子域)中工作的 beta 子域設置 SSL 終止,並得到完全相同的消息。我忘了補充一點,我已經通過 DigitalOcean 支持打開了一張票,但我還沒有收到回复。

經過一個週末的絞盡腦汁和幾次嘗試,我終於得到了Digital Ocean的回复。結果證明這不是我的錯誤,而是 DO 後端的一個錯誤影響了負載均衡器的所有 Let’s Encrypt 證書生成(在特定的 droplets 上使用 certbot 是可以的)。週日早上(東部時間)推出了修復程序,問題現已解決。

引用自:https://serverfault.com/questions/937371