金鑰管理
Config 伺服器可以使用對稱(共享)金鑰或非對稱金鑰(RSA 金鑰對)。非對稱選擇在安全性方面更優越,但使用對稱金鑰通常更方便,因為它是在 application.properties
中配置的單個屬性值。
若要配置對稱金鑰,您需要將 `encrypt.key` 設定為機密字串(或使用 `ENCRYPT_KEY` 環境變數以將其保留在純文字設定檔之外)。
如果您在類別路徑中包含 `spring-cloud-starter-bootstrap` 或將 `spring.cloud.bootstrap.enabled=true` 設定為系統屬性,則需要在 `bootstrap.properties` 中設定 `encrypt.key`。 |
您無法使用 `encrypt.key` 配置非對稱金鑰。 |
若要配置非對稱金鑰,請使用金鑰儲存庫(例如,由 JDK 隨附的 `keytool` 工具建立)。金鑰儲存庫屬性為 `encrypt.keyStore.*`,其中 `*` 等於
屬性 | 描述 |
---|---|
|
包含 `Resource` 位置 |
|
存放解鎖金鑰儲存庫的密碼 |
|
識別要使用的儲存庫中的哪個金鑰 |
|
要建立的 KeyStore 類型。預設為 `jks`。 |
加密是使用公鑰完成的,而解密需要私鑰。因此,原則上,如果您只想加密(並準備好使用私鑰在本地自行解密值),則可以在伺服器中僅配置公鑰。實際上,您可能不想在本地進行解密,因為它會將金鑰管理流程分散到所有用戶端,而不是集中在伺服器中。另一方面,如果您的配置伺服器相對不安全,並且只有少數用戶端需要加密屬性,那麼這可能是一個有用的選項。