疑難排解加密金鑰輪替:CVE-2024-34102
本文旨在協助商家在CVE-2024-34102上依照本文章概述的步驟操作後,疑難排解加密金鑰輪換問題。
如果您已按照上述文章中的步驟操作,並在輪換加密金鑰時遇到問題,我們提供獨立的修補程式,可協助您解決潛在問題。
為了協助說明先前已傳達並概述的步驟,以防止CVE-2024-34102出現以及其他疑難排解,您也可以運用此流程圖:
如何套用隔離修補程式以執行新命令
解壓縮檔案,並在我們的支援知識庫中參閱如何套用Adobe提供的撰寫器修補程式,以取得指示。
新增加密金鑰,而不使用環境變數
預設的應用程式行為是將加密金鑰儲存在app/etc/env.php
檔案中。
檔案中概述的步驟說明如何使用管理介面在該檔案中變更此金鑰。
本節提供的步驟和隔離修補程式可讓您輕鬆變更該檔案中的值,並可讓您透過管理員介面解決可能遇到的問題。
不過,管理加密金鑰最簡單且最安全的方法是使用環境變數。 如果您已在使用環境變數,或有興趣使用變數來管理此金鑰,可透過獨立章節說明這些步驟。
說明 description
受影響的產品和版本
雲端上的Adobe Commerce、內部部署的Adobe Commerce和Magento Open Source:
- 2.4.7-p1和更舊版本
- 2.4.6-p6和較舊版本
- 2.4.5-p8和更舊版本
- 2.4.4-p9及舊版
解決方法 resolution
用於疑難排解加密金鑰輪換詳細資訊的隔離修補程式
根據您的Adobe Commerce/Magento Open Source版本,使用以下附加修補程式:
若為2.4.7版、2.4.7-p1版:
若為版本2.4.6、2.4.6-p1、2.4.6-p2、2.4.6-p3、2.4.6-p4、2.4.6-p5、2.4.6-p6:
適用於版本2.4.5、2.4.5-p1、2.4.5-p2、2.4.5-p3、2.4.5-p4、2.4.5-p5、2.4.5-p6、2.4.5-p7、2.4.5-p8:
適用於版本2.4.4、2.4.4-p1、2.4.4-p2、2.4.4-p3、2.4.4-p4、2.4.4-p5、2.4.4-p6、2.4.4-p7、2.4.4-p8、2.4.4-p9:
安裝隔離的修補程式後,請使用新的CLI命令變更使用中的加密金鑰。
注意: 這個新的CLI命令會在執行時觸發快取清除。
- 此新命令應在包含您要更新之金鑰之
app/etc/env.php
檔案的環境上執行。 - 確認新命令存在:
bin/magento list | grep encryption:key:change
- 您應該會看到下列輸出:
encryption:key:change Change the encryption key inside the env.php file.
- 您應該會看到下列輸出:
- 變更加密金鑰:
bin/magento encryption:key:change
- 如果您已在生產系統上執行此命令,則不需要進一步的動作。 如果您已在開發系統上執行此變更,則 必須 將此變更匯入您的生產系統,如同您通常部署敏感的組態設定一樣。
使用環境變數更新加密金鑰,而非使用隔離的修補程式
作為上述章節的替代方法,這些步驟可讓您新增加密金鑰,同時保留現有的加密資料,即使您目前使用預設值app/etc/env.php
亦然。 本節適用於Cloud和Cloud Starter上的Adobe Commerce,但也適用於Adobe Commerce內部部署,不過變數的確切步驟和位置將取決於您的基礎結構。
收集您目前的值
- 如果您已使用環境變數管理您的金鑰,它可能在數個可能位置,但極有可能在
CRYPT_KEY
變數中,如檔案所述。 - 如果您未使用變數,則加密金鑰將在
app/etc/env.php
資料金鑰內的crypt/key
中。
在任何一種情況下,都可能是多行值,且包含多個隨機資料行。
產生2.4.7x版本的新值
加密金鑰是32個位元組的隨機資料,以base64編碼,並加上前置詞base64
。 若要產生新金鑰:
-
使用您選擇的工具,產生以base64編碼的32個隨機位元組資料。 例如,使用OpenSSL CLI,您可以執行
openssl rand -base64 32
,但可以使用任何可信任的密碼隨機產生工具。 -
將該值加上前置詞
base64
。 例如,如果openssl
命令輸出ABC123,則值會變成: base64ABC123 -
將產生的值附加至您在上方收集的現有值。 例如,如果現有值為 base64HelloWorld,則新值將變成:
code language-none base64HelloWorld base64ABC123
2.4.6x和更早版本的加密金鑰是十六進位編碼格式的16位元組隨機資料。 若要產生新金鑰:
-
使用您選擇的工具,產生16個隨機位元組的資料。 例如,使用OpenSSL CLI,您可以執行
openssl rand -hex 16
,但可以使用任何可信任的密碼隨機產生工具。 -
將產生的值附加至您在上方收集的現有值。 例如,如果現有值為 abc123,而您在上一步驟中的隨機值為 456def,則您的新值將變成:
abc123
456def
新增一個新的環境變數
使用雲端主控台或magento-cloud CLI將env:MAGENTO_DC_CRYPT__KEY
環境變數設定為此新值。
注意: 請注意,如果您選擇將變數標示為 敏感,您可能會想要儲存此值的外部備份,因為它將會在所有介面中隱藏,而且只有應用程式才能看見。
儲存變數後,系統會自動觸發重新部署,進而套用值。
安全性更新
Adobe Commerce可用的相關安全性更新: