更新 API 服务器证书后出现"RequestError: Error: unable to verify the first certificate"错误



我在AWS上有这个网站(我们称之为 a.com(。它是使用 NodeJs 后端和视图前端完成的。它正在从其他某个 URL 调用另一个系统 API(我们称之为 b.com(以获取数据。

这个网站工作正常。我们更新了站点 b.com 的 SSL 证书,现在站点 a.com 无法从站点 b.com 接收数据。

当我检查AWS上的错误日志时,这是我发现的错误:

RequestError: Error: unable to verify the first certificate
at new RequestError (/var/app/current/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/var/app/current/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/var/app/current/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/var/app/current/node_modules/request/request.js:185:22)
at emitOne (events.js:116:13)

可能是什么问题?

我可以在 NodeJs 服务器上进行任何设置以从 b.com 加载数据吗?

该网站在我的本地主机上运行良好。

正如错误消息所说,验证 SSL 证书时出现问题b.com.
我看到您正在使用request库,因此作为解决方法,您可以在选项中传递strictSSL: false

{  
url: 'https://b.com',
method: 'GET',
...
strictSSL: false
}

必要的警告:关闭所有SSL证书验证是危险的。如果您这样做,MiTM 攻击(例如本地网络上的嗅探器/欺骗器(可以读取或替换您的任何数据。如果你能帮助它,就不要这样做。

  • 更好的解决方案:导出或以其他方式为进程设置NODE_EXTRA_CA_CERTS环境变量,并将其指向工作根证书 CA 文件。

  • 配置等效:npm config set cafile "<path to certificate file>"

  • 更糟糕的解决方案解决方法:导出或以其他方式设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0

  • 等效配置:npm config set strict-ssl false。这可能不适用于忽略配置的安装脚本。

相关内容

最新更新