解决加密密钥问题
将数据库转储导入另一个环境时,加密密钥将保留在源环境中。 本文介绍如何传输加密密钥,以解决付款和保存数据的问题。
描述 description
环境
云基础架构上的Adobe Commerce 2.4.x
问题/症状
将数据库转储从生产环境导入到暂存/集成环境后,您会遇到以下一个或多个情况:
- 保存的信用卡号码显示不正确
- 对于需要商家凭据的付款集成,付款失败
- 存储的支付方式数据已损坏
原因
用于加密敏感数据(如信用卡号和商家凭证)的加密密钥未存储在数据库中。 因此,在导入或导出数据库转储时,不会将其传输到其他环境。
解决方法 resolution
您必须从源环境中复制加密密钥并将其添加到目标环境中。
要复制加密密钥,请执行以下操作:
- SSH到作为数据库转储源的项目,如开发人员文档中的SSH到环境中所述。
- 在文本编辑器中打开
app/etc/env.php。 - 复制
crypt的key值。
return array(
'crypt' => array(
'key' => '',
),
);
设置目标项目的键值:
或者,您可以在app/etc/env.php文件中手动覆盖加密密钥:
- SSH连接到目标环境。
- 在文本编辑器中打开
app/etc/env.php。 - 将复制的数据粘贴为
crypt的key值。 - 保存编辑的
env.php。 - 通过运行
bin/magentocache:clean或在 系统 下的Commerce管理员中清除目标环境中的缓存>工具>缓存管理。
recommendation-more-help
experience-cloud-kcs-help-kbarticles