Spring Cloud Config 客户端和服务器都启用了 mTLS 时出现先有鸡还是先有蛋的问题?

A chicken and egg problem with Spring Cloud Config Client and Server when BOTH are mTLS enabled?

关于 Spring Cloud Config 客户端和服务器的小问题,特别是在两者都启用 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 团队,无能为力。

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