【问题标题】:Spring Gateway Question on reverse proxying to TLS micro-services关于反向代理到 TLS 微服务的 Spring Gateway 问题
【发布时间】:2021-06-01 17:22:34
【问题描述】:

我目前正在做一个项目,每个微服务都有自己的 tls 证书。

我正在考虑使用 spring gateway 来解决像 csrf 这样的交叉问题(使用双重提交模式)。

我希望网关在代理到微服务之前验证 csrf,并在每次微服务响应后创建一个新的 csrf 值,并改变响应以包含新的 csrf 值。

由于每个微服务(网关代理)都有自己的 tls 证书,是否可以在将请求发送到微服务之前和之后读取和修改请求?

如果网关没有读取请求的证书,我想我对网关如何工作感到有些困惑。

【问题讨论】:

    标签: spring ssl spring-cloud-gateway


    【解决方案1】:

    网关将建立它自己的 tls 连接。之后,网关将应用它的过滤器,然后代理到建立另一个 tls 连接的微服务。在这个场景中,我们将有 2 个不同的 tls 连接(从客户端浏览器到网关,从网关到服务)。

    在我的情景中,我有带有自签名证书的微服务。网关设置需要包含每个服务的公钥以建立 tls 连接(因为它无法验证来自证书颁发机构的证书)。 Spring 网关允许我们在应用程序属性文件中执行此操作

    spring:
      cloud:
        gateway:
          httpclient:
            ssl:
              trustedX509Certificates:
              - cert1.pem
              - cert2.pem
    

    最后,通过创建过滤器,我能够在代理到微服务之前验证网关内的 csrf 值。我已决定不更改每个请求的 csrf 值。对于我的用例,我只需要为用户会话生成一次 csrf(我在用户登录后生成了一次 csrf)。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2020-06-04
      • 2016-01-17
      • 2020-05-06
      • 2018-01-11
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多