假设一个应用程序由使用 ASP.NET Core 实现的不同 Web 服务组成,每个服务都部署为 Kubernetes 集群(确切地说是 AKS)中的 Pod。现在,假设我想通过 HTTPS 保护这些服务之间的集群内部通信。这需要我:
我已经学到的东西:
LettuceEncrypt 设置 Kestrel,根据集群根 CA 配置它,并让所有 Pod 信任该 CA(通过将相应的证书导入为可信根)。
有这么简单吗?或者我错过了什么?
2022-07-26更新:请注意,我需要支持Windows容器。
mTLS。要使用 AKS 集群存档此内容,您可以轻松激活 Open Service Mesh Add-On。启用 OSM 后,您现在可以加密集群中部署的服务端点之间的通信。最酷的事情是 OSM 附加组件与 Azure Monitor 集成。
这里使用 ingress-nginx 执行 mTLS 的示例:
为了代理与 HTTPS 后端的连接,我们将配置 Ingress 和 IngressBackend 配置以使用 https 作为后端 协议,并让 OSM 颁发 Nginx 将用作的证书 用于将 HTTPS 连接代理到 TLS 后端的客户端证书。这 客户端证书和CA证书将存储在Kubernetes中 Nginx 将用于验证服务网格后端的秘密。
阅读
https://cert-manager.io/docs/usage/ 和 https://cert-manager.io/docs/usage/csi/
我相信这就是我们所需要的。