金鑰管理

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.*,其中 * 等於:

屬性 描述

encrypt.keyStore.location

包含一個 Resource 位置

encrypt.keyStore.password

金鑰庫的解鎖密碼

encrypt.keyStore.alias

標識使用金鑰庫中的哪個金鑰

encrypt.keyStore.type

要建立的 KeyStore 型別。預設為 jks

加密使用公鑰完成,解密需要私鑰。因此,原則上,如果你只想加密(並準備好使用私鑰在本地自行解密),可以在伺服器中只配置公鑰。實際上,你可能不希望在本地進行解密,因為它會將金鑰管理過程分散到所有客戶端,而不是集中在伺服器中。另一方面,如果你的配置伺服器相對不安全,並且只有少數客戶端需要加密屬性,這可能是一個有用的選項。