0

所以我有一个可以工作的 mTLS 服务网格,直到其中一个服务使用一些标头操作逻辑进行了更新。这个逻辑是从服务获得的请求中获取标头,然后将这些标头添加到该服务向另一个请求发出的请求中。

有了这个逻辑,这个服务和下一个服务之间的 mTLS 就被破坏了,如果我激活了 PERMISSIVE 模式,连接就会像往常一样工作。

所以然后我去了这个服务的容器并对下一个服务做了一个 curl 请求,但是没有 Host Header 并且请求通过了。

因此,同样的请求,只是没有 Host 标头 mtls 可以工作,而使用 host 标头则不能。

我想知道发生这种情况的原因。它是否与 mTLS 以及两个服务如何相互信任有关?

谢谢

4

1 回答 1

0

我认为解决此问题的最佳方法是分析标头操作逻辑前后服务版本之间的差异。

为了转储标头的请求,您可以在此处使用 Istio 官方文档中的帮助程序 httbin 服务器。

您可以在此处找到有关如何使用它的更多信息。

请让我知道这是否有帮助。

于 2019-09-26T11:25:01.023 回答