我一直在尝试在 Google Cloud 上测试 Kubernetes,但需要在部署的应用程序上公开 HTTPS/TLS(仅)。首先,我只是按照这个教程进行操作,它对于通过端口 80 的纯 HTTP 运行良好:https://cloud.google.com/kubernetes-engine/docs/quickstart
要获得 TLS 支持,请使用让我们加密,我尝试过(但没有成功):
- 通过 Golang 应用程序本身提供服务时出现“CIPHER MISMATCH”错误(然后仅为节点集群执行通用 TCP 负载均衡器)... https://godoc.org/golang.org/x/crypto/acme/autocert
- 这种方法也不起作用:https://github.com/ahmetb/gke-letsencrypt
答案1
答案2
您可以按照说明进行操作这里使用 Google 管理的证书创建 Kubernetes Ingress。从高层次上讲,这涉及两个步骤:
- 创建 ManagedCertificate 资源(这是 GKE 中的 Beta 功能)
- 使用
networking.gke.io/managed-certificates
Ingress 清单中的注释指向步骤 1 中创建的托管证书
Google 会使用两个 CA 之一自动为您创建证书。如果您坚持使用 Let's Encrypt,您可以添加CAA 记录到你的 DNS 区域如下:
your_domain. CAA 0 issue "letsencrypt.org"
或者,如果您的应用已在 GKE 中启动并运行,并且位于现有的全局 HTTP 负载均衡器后面,您可以按照说明进行操作这里将 Google 管理的证书添加到您的负载均衡器。无论您使用哪种方法,最终结果基本相同。