解决加密密钥问题

将数据库转储导入另一个环境时,加密密钥将保留在源环境中。 本文介绍如何传输加密密钥,以解决付款和保存数据的问题。

描述 description

环境

云基础架构上的Adobe Commerce 2.4.x

问题/症状

数据库转储从生产环境导入到暂存/集成环境后,您会遇到以下一个或多个情况:

  • 保存的信用卡号码显示不正确
  • 对于需要商家凭据的付款集成,付款失败
  • 存储的支付方式数据已损坏

原因

用于加密敏感数据(如信用卡号和商家凭证)的加密密钥未存储在数据库中。 因此,在导入或导出数据库转储时,不会将其传输到其他环境。

解决方法 resolution

您必须从源环境中复制加密密钥并将其添加到目标环境中。

要复制加密密钥,请执行以下操作:

  1. SSH到作为数据库转储源的项目,如开发人员文档中的SSH到环境中所述。
  2. 在文本编辑器中打开app/etc/env.php
  3. 复制cryptkey值。
return array(
    'crypt' => array(
        'key' => '',
    ),
);

设置目标项目的键值:

  1. 打开云控制台并找到您的项目。
  2. 设置CRYPT_KEY(在开发人员文档中)变量的值,如开发人员文档中的配置项目中所述。 这将触发部署过程,每次部署时app/etc/env.php文件中的CRYPT_KEY将被覆盖。

或者,您可以在app/etc/env.php文件中手动覆盖加密密钥:

  1. SSH连接到目标环境。
  2. 在文本编辑器中打开app/etc/env.php
  3. 将复制的数据粘贴为cryptkey值。
  4. 保存编辑的env.php
  5. 通过运行bin/magento cache:clean或在 系统 下的Commerce管理员中清除目标环境中的缓存 > 工具 > 缓存管理
recommendation-more-help
experience-cloud-kcs-help-kbarticles