此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Cloud Config 4.1.4spring-doc.cn

使用多个密钥和密钥轮换

除了加密属性值中的前缀外,Config Server 还会在(Base64 编码的)密文开始之前查找零个或多个前缀。 密钥被传递给 ,它可以执行查找密码所需的任何逻辑。 如果您已配置密钥库 (),则默认定位器将查找具有前缀提供的别名的密钥,其密文如下所示:{cipher}{name:value}TextEncryptorLocatorTextEncryptorencrypt.keystore.locationkeyspring-doc.cn

foo:
  bar: `\{cipher}{key:testkey}...`

定位器将查找名为 “testkey” 的键。 也可以通过在前缀中使用值来提供密钥。 但是,如果未提供,则默认使用密钥库密码(这是您在构建密钥库且未指定密钥时获得的密码)。 如果您确实提供了密钥,则还应使用自定义 .{secret:…​}SecretLocatorspring-doc.cn

当密钥仅用于加密几个字节的配置数据(即,它们没有在其他地方使用)时,出于加密原因,几乎不需要密钥轮换。 但是,您可能偶尔需要更改密钥(例如,在发生安全漏洞时)。 在这种情况下,所有客户端都需要更改其源配置文件(例如,在 git 中)并在所有密码中使用新前缀。 请注意,客户端需要首先检查密钥别名在 Config Server 密钥库中是否可用。{key:…​}spring-doc.cn

如果要让 Config Server 处理所有加密和解密,也可以将前缀添加为发布到端点的纯文本。{name:value}/encrypt