疑難排解加密金鑰輪替: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命令會在執行時觸發快取清除。

  1. 此新命令應在包含您要更新之金鑰之app/etc/env.php檔案的環境上執行。
  2. 確認新命令存在: bin/magento list | grep encryption:key:change
    • 您應該會看到下列輸出:
      • encryption:key:change Change the encryption key inside the env.php file.
  3. 變更加密金鑰: bin/magento encryption:key:change
  4. 如果您已在生產系統上執行此命令,則不需要進一步的動作。 如果您已在開發系統上執行此變更,則 必須 將此變更匯入您的生產系統,如同您通常部署敏感的組態設定一樣。

使用環境變數更新加密金鑰,而非使用隔離的修補程式

作為上述章節的替代方法,這些步驟可讓您新增加密金鑰,同時保留現有的加密資料,即使您目前使用預設值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。 若要產生新金鑰:

  1. 使用您選擇的工具,產生以base64編碼的32個隨機位元組資料。 例如,使用OpenSSL CLI,您可以執行openssl rand -base64 32,但可以使用任何可信任的密碼隨機產生工具。

  2. 將該值加上前置詞base64。 例如,如果openssl命令輸出ABC123,則值會變成: base64ABC123

  3. 將產生的值附加至您在上方收集的現有值。 例如,如果現有值為​ base64HelloWorld,則新值將變成:

    code language-none
    base64HelloWorld    base64ABC123
    

2.4.6x和更早版本的加密金鑰是十六進位編碼格式的16位元組隨機資料。 若要產生新金鑰:

  1. 使用您選擇的工具,產生16個隨機位元組的資料。 例如,使用OpenSSL CLI,您可以執行openssl rand -hex 16,但可以使用任何可信任的密碼隨機產生工具。

  2. 將產生的值附加至您在上方收集的現有值。 例如,如果現有值為​ abc123,而您在上一步驟中的隨機值為​ 456def,則您的新值將變成:

    abc123

    456def

新增一個新的環境變數

使用雲端主控台或magento-cloud CLIenv:MAGENTO_DC_CRYPT__KEY 環境變數設定為此新值。

注意 請注意,如果您選擇將變數標示為​ 敏感,您可能會想要儲存此值的外部備份,因為它將會在所有介面中隱藏,而且只有應用程式才能看見。

儲存變數後,系統會自動觸發重新部署,進而套用值。

安全性更新

Adobe Commerce可用的相關安全性更新:

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f