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