密钥管理
Config Server 可以使用对称(共享)密钥或非对称(RSA 密钥对)密钥。非对称密钥在安全性方面更胜一筹,但使用对称密钥通常更方便,因为它只需要在 application.properties
中配置一个属性值。
要配置对称密钥,你需要将 encrypt.key
设置为一个秘密字符串(或者使用 ENCRYPT_KEY
环境变量,以避免将其放在明文配置文件中)。
如果你在 classpath 中包含 spring-cloud-starter-bootstrap 或将系统属性 spring.cloud.bootstrap.enabled=true 设置为 true,则需要在 bootstrap.properties 中设置 encrypt.key 。 |
你不能使用 encrypt.key 配置非对称密钥。 |
要配置非对称密钥,请使用密钥库(例如,由 JDK 附带的 keytool
工具创建)。密钥库属性是 encrypt.keyStore.*
,其中 *
等于:
属性 | 描述 |
---|---|
|
包含一个 |
|
密钥库的解锁密码 |
|
标识使用密钥库中的哪个密钥 |
|
要创建的 KeyStore 类型。默认为 |
加密使用公钥完成,解密需要私钥。因此,原则上,如果你只想加密(并准备好使用私钥在本地自行解密),可以在服务器中只配置公钥。实际上,你可能不希望在本地进行解密,因为它会将密钥管理过程分散到所有客户端,而不是集中在服务器中。另一方面,如果你的配置服务器相对不安全,并且只有少数客户端需要加密属性,这可能是一个有用的选项。