【发布时间】:2021-01-20 15:48:50
【问题描述】:
关于 Spring Cloud Config Client 和 Server 的小问题,尤其是在两者都启用 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 等中的正确方法是什么?
谢谢
【问题讨论】: