除了加密属性值中的前缀外,Config Server 还会在(Base64 编码的)密文开始之前查找零个或多个前缀。
密钥被传递给 ,它可以执行任何需要的逻辑来定位密码的 a。
如果配置了密钥库 (),那么缺省定位器将查找具有前缀提供的别名的密钥,其密文如下所示:{cipher}
{name:value}
TextEncryptorLocator
TextEncryptor
encrypt.keystore.location
key
foo:
bar: `\{cipher}{key:testkey}...`
定位器查找名为“testkey”的键。
还可以使用前缀中的值来提供机密。
但是,如果未提供,那么缺省是使用密钥库密码(这是构建密钥库且未指定密钥时获得的密码)。
如果确实提供了密钥,则还应使用自定义 .{secret:…}
SecretLocator
当密钥仅用于加密几个字节的配置数据时(也就是说,它们未在其他地方使用),则在加密方面几乎不需要密钥轮换。
但是,您可能偶尔需要更改密钥(例如,在发生安全漏洞时)。
在这种情况下,所有客户端都需要更改其源配置文件(例如,在 git 中)并在所有密码中使用新前缀。
请注意,客户机需要首先检查密钥别名在 Config Server 密钥库中是否可用。{key:…}
如果要让 Config Server 处理所有加密和解密,还可以将前缀添加为发布到端点的纯文本。{name:value} /encrypt |
如果要让 Config Server 处理所有加密和解密,还可以将前缀添加为发布到端点的纯文本。{name:value} /encrypt |