Spring 关于反向代理到 TLS 微服务的网关问题
Spring Gateway Question on reverse proxying to TLS micro-services
我目前正在做一个项目,每个微服务都有自己的 tls 证书。
我正在考虑使用 spring 网关来解决像 csrf 这样的交叉问题(使用双重提交模式)。
我希望网关在代理到微服务之前验证 csrf,并在每次微服务响应后创建一个新的 csrf 值,并改变响应以包含新的 csrf 值。
由于每个微服务(网关正在代理)都有自己的 tls 证书,是否可以在将请求发送到微服务之前和之后读取和修改请求?
我想我对网关在没有读取请求的证书时如何工作感到有点困惑。
网关将建立它自己的 tls 连接。之后网关将应用它的过滤器,然后代理到建立另一个 tls 连接的微服务。在这个场景中,我们将有 2 个不同的 tls 连接(从客户端浏览器到网关,从网关到服务)。
在我的 senario 中,我有带有自签名证书的微服务。网关设置将需要为每个服务包含 public 密钥以建立 tls 连接(因为它将无法验证来自证书颁发机构的证书)。 Spring 网关允许我们在应用程序属性文件中执行此操作
spring:
cloud:
gateway:
httpclient:
ssl:
trustedX509Certificates:
- cert1.pem
- cert2.pem
最后,我能够在代理到微服务之前通过创建过滤器来验证网关内的 csrf 值。我决定不更改每个请求的 csrf 值。对于我的用例,我只需要为用户会话生成一次 csrf(我在用户登录后生成一次 csrf)。
我目前正在做一个项目,每个微服务都有自己的 tls 证书。
我正在考虑使用 spring 网关来解决像 csrf 这样的交叉问题(使用双重提交模式)。
我希望网关在代理到微服务之前验证 csrf,并在每次微服务响应后创建一个新的 csrf 值,并改变响应以包含新的 csrf 值。
由于每个微服务(网关正在代理)都有自己的 tls 证书,是否可以在将请求发送到微服务之前和之后读取和修改请求?
我想我对网关在没有读取请求的证书时如何工作感到有点困惑。
网关将建立它自己的 tls 连接。之后网关将应用它的过滤器,然后代理到建立另一个 tls 连接的微服务。在这个场景中,我们将有 2 个不同的 tls 连接(从客户端浏览器到网关,从网关到服务)。
在我的 senario 中,我有带有自签名证书的微服务。网关设置将需要为每个服务包含 public 密钥以建立 tls 连接(因为它将无法验证来自证书颁发机构的证书)。 Spring 网关允许我们在应用程序属性文件中执行此操作
spring:
cloud:
gateway:
httpclient:
ssl:
trustedX509Certificates:
- cert1.pem
- cert2.pem
最后,我能够在代理到微服务之前通过创建过滤器来验证网关内的 csrf 值。我决定不更改每个请求的 csrf 值。对于我的用例,我只需要为用户会话生成一次 csrf(我在用户登录后生成一次 csrf)。