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