|
对于最新的稳定版本,请使用Spring Cloud Config 5.0.0! |
使用多键与键旋转
此外{密码}在加密属性值中,配置服务器会寻找零或多个{name:value}在(Base64编码的)密文开始前的前缀。
密钥传递给TextEncryptorLocator,可以执行定位 的逻辑TextEncryptor为了密码。
如果你配置了密钥存储 (encrypt.keystore.location),默认定位符寻找由钥匙前缀,带有类似以下密文的密文:
foo:
bar: `\{cipher}{key:testkey}...`
定位器会寻找一个名为“testkey”的密钥。
秘密也可以通过使用{秘密:...}前缀中的值。
但如果没有提供密钥存储,默认会使用密钥存储密码(这就是你构建密钥存储且不指定密钥时获得的密码)。
如果你提供了秘密,也应该用自定义加密秘密定位器.
当密钥仅用于加密几个字节的配置数据(即未在其他地方使用)时,从密码学角度看,密钥轮换几乎没有必要。
不过,你有时可能需要更换密钥(例如在安全漏洞发生时)。
在这种情况下,所有客户端都需要更改源配置文件(比如在 git 里),并使用新的配置文件{key:...}所有密码的前缀。
请注意,客户端首先需要检查密钥别名是否存在于配置服务器密钥库中。
如果你想让配置服务器处理所有加密和解密,那么{name:value}前缀也可以作为明文添加到/加密端点。 |