Load-Balancing

在 GCP (GAE) 上創建負載均衡器。SSL 證書域卡在 FAILED 狀態

  • May 25, 2021

我是這個話題的新手。我們使用 GCP(App Engine,標準)來託管一個 nodejs 應用程序。然而,出於不同的原因,我們決定創建兩個服務*——stagedefault*(認為是同一個應用程序並行執行)。

預設一個與自定義域(GAE 提供的 SSL 證書)連接並正常工作。可以使用 google 生成的 URL (stage-dot-example.appspot.com) 訪問舞台服務,並且顯然受到 ssl 證書的保護*。*

然後,我們必須通過合作夥伴的安全審查,我們為此使用了階段

結果是我們必須禁用 TLSv1.0 和 TLSv1.1。使用 GAE - 我們需要創建負載均衡器並將 SSL 策略切換到特定於 TLS 的策略。

問題:要創建外部 HTTPS 負載平衡器 - 您必須創建 SSL 證書資源(即您必須擁有域)。使用自定義域,我想這應該不難,但我該如何為舞台做到這一點?我是否在 SSL 證書資源中使用我的階段域 (…appspot.com)?如果是這樣 - 我如何處理 DNS 記錄和外部 IP(您需要將 IP 切換到 A 和 AAAA 記錄中的外部 IP)?

或者如果我做錯了什麼 - 你能指出我正確的方向嗎?

更新 + 更新 2

我決定走 Wojtek_B 提出的路徑。所以我驗證了 stage.example.com,它在沒有負載均衡器的情況下執行良好。

那時,我的 DNS 記錄包括來自 @ 的 4 條 A 和 4 條 AAAA 記錄,帶有 google 提供的 IP,以及 3 條 CNAME 記錄(www、stage、www.stage)指向“ghs.googlehosted.com”。

接下來,我創建了具有 4 個域的 SSL 證書資源:example.com、www.example.com、stage.example.com、www.stage.example.com

然後我添加了一個外部 HTTPS 負載均衡器(使用外部 IP,例如,1.2.3.4 和上面提到的 SSL 證書)。

我為@、www、stage 和www.stage 添加了新的A 記錄以指向1.2.3.4。我已經刪除了 CNAME 記錄,因為它們過多。

等待 2-3 小時(TTL 為 1/2 小時)後,所有子域都被啟動,除了 example.com(卡在 FAILED_NOT_VISIBLE 中)。

回答

一段時間以來,我一直在與託管 SSL 證書陷入供應狀態作鬥爭。我遵循本教程,您應該只創建外部 IP (v4)。但我也有 4 條 AAAA 記錄(在域驗證期間獲得)(顯然)是 ipv6。所以我嘗試保留外部 IP (v6),不到一分鐘就將所有 4 個(子)域推送到活動狀態。

在短短幾分鐘內,通過 LB 的兩個服務都啟動並執行所需的 TLS 配置。

您只能在 GCP 中將 SSL 證書用於指向負載平衡器的域。如果您嘗試為應用引擎應用程序配置證書,則不會生成該證書。

可能發生的原因有幾個:

  • 域的 DNS 記錄無法解析為 Google Cloud 負載平衡器的 IP 地址。要解決此問題,請更新 DNS 記錄以指向您的負載均衡器的 IP 地址。
  • SSL 證書未附加到負載均衡器的目標代理。要解決此問題,請更新您的負載均衡器配置。
  • 全域轉發規則的前端埠不包括 SSL 代理負載平衡器的埠 443。這可以通過使用埠 443 添加新的轉發規則來解決。

但是,您可以使用的所有應用程序引擎地址(帶有 *.appspot.com 子域)都具有有效的 SSL 證書。但是你不能使用負載均衡器。

如果您可以在沒有負載均衡器的情況下執行所有暫存測試,那麼 GCP 的 SSL 證書就可以完成這項工作。

如果您需要讓您的登台環境在與生產環境相同的設置中執行,那麼您需要創建一個新的 LB,其 backedn 指向您的 GAE 服務。此外,您將需要另一個域(或至少是子域)。您需要使用域以外的域,*.appspot.com因為創建 GCP 的自我管理 SSL 證書需要提供指向 LB 本身(而不是 GAE)的域。

在您的情況下,我建議創建一個新的子域。然後創建新的 LB 並為該子域生成新的 SSL 證書。配置證書最多需要 60 分鐘。您還必須更改A子域中的記錄以指向新創建的 LB - 只有這樣才能成功配置 SSL 證書(因為域必須指向 LB)。

或者,您可以將您的子域添加到現有證書的域列表中。保留為域創建的所有記錄,並在創建子域後創建一組新記錄A(以及AAAA必要的記錄)。

如果您使用的是 GCP 的 Cloud DNS,那麼它將如下所示:

在此處輸入圖像描述

另外,我建議您閱讀連結的文件,以更好地了解整個過程。

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