【问题标题】:Node HTTP/2 the correct place to set managed certificate节点 HTTP/2 设置托管证书的正确位置
【发布时间】:2020-01-03 23:35:22
【问题描述】:
我在this example 之后使用http/2 创建了一个NodeJS 应用程序:
注意:此应用程序使用自签名证书。
我们将它部署在 GKE 上,它一直运行到现在。
下面是这个简单架构的样子:
现在,我们想开始使用真正的证书,但不知道放在哪里合适。
我们应该把它放在 pod 中(覆盖自签名证书)吗?
我们应该在这个架构的顶部添加一个代理来放入证书吗?
【问题讨论】:
标签:
node.js
ssl
kubernetes
google-kubernetes-engine
http2
【解决方案1】:
在 GKE 中,您可以使用 ingress object 将外部 HTTP(S) 流量路由到集群中的应用程序。有了这个,你有 3 个选择:
- Google 管理的证书
- 与 GCP 共享的自我管理证书
- 作为机密资源的自我管理证书
检查 this guide 的入口负载平衡
【解决方案2】:
Client 的 SSL 会话在 LB 级别终止,所使用的自签名证书只是为了加密 LB 和 Pod 之间的通信。因此,如果您希望客户端使用您的新有效证书,它需要处于 LB 级别。
附带说明,让您的应用程序服务器通过 HTTP 与 LoadBalancer 进行通信将提高性能。由于 LB 无论如何都充当反向代理。
你可以阅读this article关于负载平衡的文章,它是由 HAProxy 的作者写的