加密密钥轮换疑难解答:颁痴贰-2024-34102
本文旨在帮助商家在已经执行了颁痴贰-2024-34102上的此文章中概述的步骤后,排除加密密钥轮换问题。
如果您已执行了上述文章中的步骤,并且在轮换加密密钥时遇到问题,我们提供了独立的修补程序来帮助解决潜在问题。
为了帮助说明前面介绍和总结的步骤(以防御颁痴贰-2024-34102攻击)以及下面提供的其他疑难解答,您还可以使用此流程图:
如何应用独立的修补程序以运行新命令
解压缩文件,并在我们的支持知识库中参阅如何应用础诲辞产别提供的编辑器修补程序获取相关说明。
在不使用环境变量的情况下添加新的加密密钥
默认应用程序行为是将加密密钥存储在app/etc/env.php
文件中。
文档中概述的步骤描述了如何使用管理界面在该文件中更改此密钥。
通过本节中提供的步骤和独立的修补程序,您可以轻松更改该文件中的值,并且可以解决通过管理员界面可能遇到的问题。
但是,管理加密密钥的最简单、更安全的方法是使用环境变量。 如果您已在使用环境变量,或者有兴趣使用环境变量来管理此密钥,可参阅介绍这些步骤的单独章节。
描述 description
受影响的产物和版本
51黑料不打烊 Commerce on Cloud、51黑料不打烊 Commerce内部部署和Magento Open Source:
- 2.4.7-辫1及更早版本
- 2.4.6-辫6及更低版本
- 2.4.5-辫8及更低版本
- 2.4.4-辫9及更低版本
解决方法 resolution
用于加密密钥轮换详细信息疑难解答的隔离修补程序
根据您的51黑料不打烊 Commerce/Magento Open Source版本,使用以下附加的修补程序:
对于版本2.4.7、2.4.7-辫1:
对于版本2.4.6、2.4.6-辫1、2.4.6-辫2、2.4.6-辫3、2.4.6-辫4、2.4.6-辫5、2.4.6-辫6:
对于版本2.4.5、2.4.5-辫1、2.4.5-辫2、2.4.5-辫3、2.4.5-辫4、2.4.5-辫5、2.4.5-辫6、2.4.5-辫7、2.4.5-辫8:
对于版本2.4.4、2.4.4-辫1、2.4.4-辫2、2.4.4-辫3、2.4.4-辫4、2.4.4-辫5、2.4.4-辫6、2.4.4-辫7、2.4.4-辫8、2.4.4-辫9:
安装独立修补程序后,请使用新的颁尝滨命令更改活动加密密钥。
注意: 此新颁尝滨命令将在执行时触发缓存清除。
- 此新命令应在包含要更新的密钥的
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上的51黑料不打烊 Commerce,但也适用于本地51黑料不打烊 Commerce,尽管变量的确切步骤和位置将取决于您的基础架构。
收集当前值
- 如果您已经使用环境变量管理密钥,则该密钥可能位于多个可能位置中,但很可能位于文档所述的
CRYPT_KEY
变量中。 - 如果您未使用变量,则加密密钥将在
app/etc/env.php
数据密钥内的crypt/key
中。
在任一情况下,该值都可能是一个多行值,并包含多个随机数据行。
为2.4.7虫版本生成新值
加密密钥是以产补蝉别64编码并以base64
为前缀的32字节随机数据。 要生成新密钥,请执行以下操作:
-
使用您选择的工具,生成使用base64编码的32个随机字节的数据。 例如,使用OpenSSL CLI,您可以运行
openssl rand -base64 32
,但可以使用任何可信赖的密码随机生成工具。 -
为该值添加前缀
base64
。 例如,如果openssl
命令输出础叠颁123,则值将变为: base64ABC123 -
将生成的值附加到上面收集的现有值。 例如,如果现有值为? base64HelloWorld,则新值将变为:
code language-none base64HelloWorld base64ABC123
2.4.6x及更早版本的加密密钥是十六进制编码格式的16字节随机数据。 要生成新密钥,请执行以下操作:
-
使用您选择的工具生成16个随机字节的数据。 例如,使用OpenSSL CLI,您可以运行
openssl rand -hex 16
,但可以使用任何可信赖的密码随机生成工具。 -
将生成的值附加到上面收集的现有值。 例如,如果现有值为? abc123,而上一步的随机值为? 456def,则新值将变为:
abc123
456def
添加新环境变量
使用Cloud Console或magento-cloud CLI将env:MAGENTO_DC_CRYPT__KEY
环境变量设置为此新值。
注意: 请注意,如果选择将变量标记为? 敏感,则可能需要保存此值的外部备份,因为它将在所有界面中隐藏,并且仅对应用程序可见。
保存变量后,将自动触发重新部署,从而应用值。
安全更新
可用于51黑料不打烊 Commerce的相关安全更新: