解决加密密钥问题
本文就如何解决加密密钥未随数据库转储一起移动到其他环境所导致的问题进行了讨论。
受影响的产品和版本
- 云基础架构上的Adobe Commerce 2.4.x
问题
将数据库转储从生产环境导入到暂存/集成环境后,对于需要使用商家凭据的付款集成,保存的信用卡号显示错误和/或付款失败。
原因
用于加密敏感数据(如信用卡号和商户凭证)的加密密钥未存储在数据库中,因此在数据库转储导入/导出后不会传输到其他环境。
解决方案
您需要从源环境中复制加密密钥并将其添加到目标环境中。
要复制加密密钥,请执行以下操作:
- SSH到作为数据库转储源的项目,如开发人员文档中的SSH到环境中所述。
- 在文本编辑器中打开
app/etc/env.php
。 - 复制
crypt
的key
值。
return array ('crypt' => array ('key' => '<your encryption key>', ),);
设置目标项目的键值:
或者,您可以在app/etc/env.php
文件中手动覆盖加密密钥:
- SSH连接到目标环境。
- 在文本编辑器中打开
app/etc/env.php
。 - 将复制的数据粘贴为
crypt
的key
值。 - 保存编辑的
env.php
。 - 通过运行
bin/magento cache:clean
或在 系统 > 工具 > 缓存管理 下的Commerce管理员中清除目标环境中的缓存。
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a