SpringCloud 使用多個按鍵和按鍵旋轉(zhuǎn)

2023-08-01 09:45 更新

除了加密屬性值中的?{cipher}?前綴外,Config Server在(Base64編碼的)密文開始之前查找零個或多個?{name:value}?前綴。密鑰被傳遞到?TextEncryptorLocator?,后者可以執(zhí)行為密碼找到?TextEncryptor?所需的任何邏輯。如果已配置密鑰庫(?encrypt.keystore.location?),則默認(rèn)定位器將查找具有key前綴提供的別名的密鑰,其密文類似于以下內(nèi)容:

foo:
  bar: `{cipher}{key:testkey}...`

定位器查找名為“ testkey”的鍵。也可以通過在前綴中使用?{secret:…?}?值來提供機密。但是,如果未提供,則默認(rèn)為使用密鑰庫密碼(這是在構(gòu)建密鑰庫且未指定密鑰時得到的密碼)。如果確實提供了機密,則還應(yīng)該使用自定義?SecretLocator?對機密進(jìn)行加密。

當(dāng)密鑰僅用于加密幾個字節(jié)的配置數(shù)據(jù)時(也就是說,它們未在其他地方使用),從密碼的角度講,幾乎不需要旋轉(zhuǎn)密鑰。但是,您有時可能需要更改密鑰(例如,在發(fā)生安全漏洞時)。在這種情況下,所有客戶端都需要更改其源配置文件(例如,在git中),并在所有密碼中使用新的?{key:…?}?前綴。請注意,客戶端需要首先檢查Config Server密鑰庫中的密鑰別名是否可用。

如果要讓Config Server處理所有加密以及解密,則還可以將{name:value}前綴添加為發(fā)布到/encrypt端點的純文本。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號