由于证书信任问题,在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,请执行以下步骤:
-
作为诊断测试(不是永久修复),请暂时禁用TLS证书验证以确认根本原因:
- 设置环境变量:
set NODE_TLS_REJECT_UNAUTHORIZED=0 - 运行:
aio cloudmanager:org:select - 如果命令成功,这将确认Node.js正在拒绝证书链。 请勿将此设置保留为启用,因为它会禁用所有TLS验证并带来安全风险。
- 设置环境变量:
-
对于永久解决方案,请从Windows导出公司或网络安全设备根CA证书:
- 打开
certmgr.msc。 - 导航到受信任的根证书颁发机构。
- 找到相关的根证书并将其导出为Base-64编码的
.pem文件。
- 打开
-
配置Node.js以信任此证书:
- 设置环境变量:
set NODE_EXTRA_CA_CERTS=C:\path\to\corporate-root-ca.pem - 运行:
aio cloudmanager:org:select - 这允许Node.js信任公司CA及其默认列表,而不会禁用验证。
- 设置环境变量:
-
或者,如果您的Node.js版本支持它,请使用系统CA存储:
- 设置环境变量:
set NODE_OPTIONS=--use-system-ca - 运行:
aio cloudmanager:org:select
- 设置环境变量:
recommendation-more-help
experience-cloud-kcs-help-kbarticles