Ssl
將“讓我們加密”TLS 與 Google 負載均衡器一起使用?(Kubernetes/GKE)
我一直在嘗試在 Google Cloud 上測試 Kubernetes,但需要在已部署的應用程序上公開 HTTPS/TLS(僅)。首先,我只是按照本教程進行操作,該教程適用於埠 80 上的普通 HTTP:https ://cloud.google.com/kubernetes-engine/docs/quickstart
為了讓 TLS 支持與**Let’s Encrypt**一起工作,我嘗試過(沒有成功):
- 通過 Golang 應用程序本身提供服務時出現“CIPHER MISMATCH”錯誤(然後只是為節點集群做一個通用的 TCP 負載均衡器)…… https://godoc.org/golang.org/x/crypto/acme/自動認證
- 此方法也不起作用:https ://github.com/ahmetb/gke-letsencrypt 🤔
… 有人對如何為原始教程提供 HTTPS 服務有任何建議嗎?除非它是免費贈品,否則不需要純 HTTP,但我真的在這個問題上摸不著頭腦,因為我之前沒有使用過 Kubernetes,而且我根本無法讓 Let’s Encrypt 在這里工作。
因此,事實證明您現在可以直接在負載均衡器上添加 TLS,它會自動頒發 Let’s Encrypt 證書。這可以通過 Cloud Console 實現:
不知道為什麼這不是更知名的。
您可以按照此處的說明使用 Google 託管證書創建 Kubernetes Ingress。在高層次上,這涉及兩個步驟:
- 創建 ManagedCertificate 資源(這是 GKE 中的測試版功能)
- 使用
networking.gke.io/managed-certificates
Ingress 清單中的註釋指向在步驟 1 中創建的託管證書Google 將使用兩個 CA 之一自動為您創建證書。如果您堅持使用 Let’s Encrypt,您可以將CAA 記錄添加到您的 DNS 區域,如下所示:
your_domain. CAA 0 issue "letsencrypt.org"
或者,如果您的應用程序已經在 GKE 中啟動並執行並且位於現有的全域 HTTP 負載均衡器之後,您可以按照此處的說明將 Google 託管證書添加到您的負載均衡器。無論您使用哪種方法,最終結果都基本相同。