You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Google Compute API管理VM时报could not load the shared library错误

报错触发原因
  • 核心为Windows环境下Node.js内置的OpenSSL组件加载加密动态库失败,报错发生在Google API认证环节生成JWT签名的调用链上。
  • 常见触发场景:
    1. 使用Node.js 17及以上版本,该版本默认搭载OpenSSL 3.0,而Google Auth依赖的加密库未适配OpenSSL 3.0的新加密策略,调用签名逻辑时找不到对应依赖库
    2. 系统环境变量中OPENSSL_CONF配置错误,指向了其他软件自带的不兼容OpenSSL配置文件,和Node.js内置的OpenSSL产生冲突
    3. 未正确配置GCP服务账号凭据,google.auth.getClient读取默认凭据时触发底层加密逻辑异常
排查解决步骤
  • 第一步:临时测试OpenSSL兼容配置
    Windows cmd环境下运行代码前先执行命令:
    set NODE_OPTIONS=--openssl-legacy-provider
    PowerShell环境下执行:
    $env:NODE_OPTIONS="--openssl-legacy-provider"
    配置完成后再运行代码,该参数是让OpenSSL 3.0兼容旧版加密策略,90%以上的同类型报错都可以通过该方案解决。如果验证生效,可以直接把参数加到项目启动脚本中,示例package.json配置:
    "scripts": {
      "start": "set NODE_OPTIONS=--openssl-legacy-provider && node 你的代码文件名.js"
    }
    
  • 第二步:排查环境变量冲突
    检查系统环境变量中是否存在OPENSSL_CONF项,若存在先临时删除,重启终端后再运行代码测试,避免其他软件(如Git、集成环境软件等)自带的OpenSSL配置产生冲突。
  • 第三步:验证GCP凭据配置
    确认你已经正确配置了服务账号密钥的环境变量,Windows cmd下配置命令为:
    set GOOGLE_APPLICATION_CREDENTIALS=C:\完整路径\到你的\服务账号密钥.json
    注意路径不要包含中文、特殊字符,若有空格需要用引号包裹路径。
  • 第四步:降级Node.js版本(备选方案)
    若以上方案都无效,可以将Node.js版本降级到16.x LTS版本,该版本默认使用OpenSSL 1.1.1,不存在该兼容问题。

内容的提问来源于stack exchange,提问作者Maurício Spagnol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:15:04