当两者都启用mTLS时,Spring Cloud配置客户端和服务器的鸡和蛋问题?



关于Spring Cloud配置客户端和服务器的小问题,特别是在两者都启用mTLS的情况下。

首先是服务器。在服务器端,由于它是第一个必须启动的,因此服务器在属性文件中有密钥存储库和信任存储库,以及密码,以便启动mTLS。

现在,客户端。首先选择Spring Cloud Config的原因是我们可以将属性存储在git, Vault等…

这样,客户端的属性文件应该是非常轻的,只有足够的信息来连接到服务器,比如只有spring.config.import=optional:configserver:http://localhost:8888

但是,当mTLS在服务器端启用时,根据定义,客户机需要适当的密钥存储库和信任存储库(存储在Git、Vault中)

我认为这是一个鸡最终蛋的问题,因为:为了启动客户端,客户端需要通过连接到服务器,从Git、Vault检索密钥库、信任库和密码。

但是为了连接到服务器,它需要密钥库、信任库和密码。

目前,它可以工作,如果在客户端,基本属性文件有

spring.config.import=optional:configserver:http://localhost:8888
server.ssl.key-alias=
server.ssl.key-password=
server.ssl.key-store-password=
server.ssl.key-store-provider=
server.ssl.key-store-type=
server.ssl.key-store=
server.ssl.trust-store-password=
server.ssl.trust-store-provider=
server.ssl.trust-store-type=
server.ssl.trust-store=

但是这有点违背了Spring Cloud Config的目的,因为大多数属性仍然在属性文件中。

实现客户机只有服务器位置和所有其他信息(如密钥库、信任库和密码)仍然保留在Git、Vault等中的正确方法是什么?

谢谢

对于Spring Team来说,什么都做不了。

https://github.com/spring-cloud/spring-cloud-config/issues/1867

最新更新