首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Istio服务网格TLS Config

Istio服务网格TLS Config
EN

Stack Overflow用户
提问于 2021-09-20 14:50:31
回答 1查看 442关注 0票数 1

我试图将运行在k8s上的Istio服务网格从http转换为https,但遇到了许多问题。我真的不明白要这么做需要采取什么步骤。

据我所知,有两种流量需要一个网格中的TLS:

  • 内部服务之间的:搜索Istio让我知道Istio将以某种方式在服务之间自动配置mTLS,这样它们都可以安全地通信而不需要任何额外的配置。但是,我仍然不太明白他们是如何实现这个mTLS的。它与普通的TLS有什么不同,mTLS在其他类型的流量(客户端到内部服务)中扮演什么角色?
  • 从客户端到内部的服务:这是我不知道该做什么的地方。我知道,为了使服务具有TLS,它需要可信CA的TLS证书。但是,由于外部客户端不会直接与内部的服务对话,而只能通过Istio入口网关进行对话。我是否需要为每项服务提供证书,还是只提供入口网关?我的所有服务现在都公开了HTTP的端口80。我是否需要将它们全部转换为端口443和HTTPS,还是仅仅通过入口网关就足够了?

关于证书,如果我现在只使用自签名证书,我可以用openssl创建证书和密钥并从它创建秘密(可能在名称空间与kubed之间同步),那么所有服务都使用相同的证书和密钥吗?到处都建议我使用cert-manager。但是,我不知道这是不是值得的努力?

如果有人能用一些插图来解释的话,我真的很感激。

EN

回答 1

Stack Overflow用户

发布于 2021-09-21 07:57:23

通常,如果您需要很好地解释与Istio相关的问题(也包括图片),我建议您查看文档。您可以在Istio找到与TLS相关的540个专题

Istio是一个非常有文档的服务。在这里,您可以找到有关理解TLS配置的更多信息。您还可以找到关于相互TLS迁移的好文章。

但是,我仍然不太清楚他们是如何实现这个mTLS的,它与普通的TLS有什么不同,以及mTLS在其他类型的通信中扮演什么角色(客户端到内部服务)。

mTLS是用于相互认证的一种方法。mTLS通过验证它们都拥有正确的私有钥匙来确保网络连接的每一端的各方都是他们声称的那个人。它们各自的TLS证书中的信息提供了额外的验证。您可以阅读更多关于它的这里。另外,yo还可以看到关于HTTP流量的页面(本例中需要mTLS)。

我的所有服务现在都公开了HTTP的端口80。我是否需要将它们全部转换为端口443和HTTPS,还是仅仅通过入口网关就足够了?

创建无TLS终端的入口网关是可能的

用HTTPS保护网关任务描述了如何配置HTTPS对HTTP服务的入口访问。此示例描述如何配置对HTTPS服务的HTTPS入口访问,即配置入口网关以执行SNI传递,而不是对传入请求执行TLS终止。

编辑(添加了更多解释和文档链接):

服务网格使用代理拦截所有网络流量,允许基于所设置的配置具有广泛的应用程序感知特性。Istio使用X.509证书安全地为每个工作负载提供强大的身份。Istio代理与每个特使代理一起运行,与istiod合作,在规模上实现密钥和证书轮换的自动化。跟随图显示身份配置流。对等身份验证:用于验证建立连接的客户端的服务到服务身份验证。Istio提供相互TLS作为传输身份验证的完整堆栈解决方案,它可以在不需要更改服务代码的情况下启用。

支持的对等身份验证模式:PermissiveStrictDisable

为了回答这个问题:

我的所有服务现在都公开了HTTP的端口80。我是否需要将它们全部转换为端口443和HTTPS,还是仅仅通过入口网关就足够了?

我们完全可以通知客户,使用Istio可以使用纯HTTP、TLS终止或传递TLS模式将从Istio服务网格到外部的服务公开。传入的TLS终端可以得到改进(使用由可信CA批准的TLS证书或使用带有Istio网关的证书管理器)。您可以阅读更多关于这个主题的这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69256498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档