金鑰管理

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

屬性 描述

encrypt.keyStore.location

包含 `Resource` 位置

encrypt.keyStore.password

存放解鎖金鑰儲存庫的密碼

encrypt.keyStore.alias

識別要使用的儲存庫中的哪個金鑰

encrypt.keyStore.type

要建立的 KeyStore 類型。預設為 `jks`。

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