由于证书信任问题,在Windows上运行“cloudmanagerselect”时,Adobe I/O CLI类型出错

本文介绍如何解决在Windows上运行Adobe I/O CLI cloudmanager:org:select命令时遇到的TypeError,该问题是由与Node.js和网络安全解决方案相关的证书信任配置问题引起的。

描述 description

环境

  • 通过Adobe I/O CLI (aio)的Adobe Experience Manager Cloud Manager
  • Node.js v24.14.1
  • Windows操作系统

问题/症状

运行命令aio cloudmanager:org:select时出现以下错误:

TypeError: Cannot read properties of null (reading 'headers')
at ...HttpExponentialBackoff.js:142:35
...
Node.js v24.14.1
  • 在使用网络安全解决方案(如VPN或SSL检查)的环境中观察到此错误。
  • 该问题与Node.js证书验证相关,因为默认情况下,它不信任公司根CA。

原因

发生此错误是因为Node.js不信任网络安全解决方案使用的公司根CA。 因此,证书验证会失败,并且CLI网络库会收到null响应对象。

解决方法 resolution

要修复在Windows上运行Adobe I/O CLI cloudmanager:org:select命令时遇到的TypeError,请执行以下步骤:

  1. 作为诊断测试(不是永久修复),请暂时禁用TLS证书验证以确认根本原因:

    • 设置环境变量: set NODE_TLS_REJECT_UNAUTHORIZED=0
    • 运行: aio cloudmanager:org:select
    • 如果命令成功,这将确认Node.js正在拒绝证书链。 请勿将此设置保留为启用,因为它会禁用所有TLS验证并带来安全风险。
  2. 对于永久解决方案,请从Windows导出公司或网络安全设备根CA证书:

    • 打开certmgr.msc
    • 导航到受信任的根证书颁发机构。
    • 找到相关的根证书并将其导出为Base-64编码的.pem文件。
  3. 配置Node.js以信任此证书:

    • 设置环境变量: set NODE_EXTRA_CA_CERTS=C:\path\to\corporate-root-ca.pem
    • 运行: aio cloudmanager:org:select
    • 这允许Node.js信任公司CA及其默认列表,而不会禁用验证。
  4. 或者,如果您的Node.js版本支持它,请使用系统CA存储:

    • 设置环境变量: set NODE_OPTIONS=--use-system-ca
    • 运行: aio cloudmanager:org:select
recommendation-more-help
experience-cloud-kcs-help-kbarticles