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

Azure DevOps构建中Cypress证书过期致npm install失败求助

Azure DevOps流水线Cypress下载证书过期问题解答

过期证书指的是什么?

这里的过期证书是Cypress官方下载服务器(或其CDN)返回的SSL/TLS证书,或是Azure DevOps构建流水线执行环境的系统证书信任池中,用于验证Cypress下载地址的根/中间证书已过期。

需要注意:手动下载正常说明代理网络和本地用户的证书信任链没问题,但流水线任务的执行上下文(如服务账户权限、系统证书存储、环境变量)和手动操作的会话存在差异——比如npm或Cypress CLI在流水线中可能调用了不同的证书存储,导致无法验证服务器证书的有效性。

解决方法

1. 临时跳过SSL证书验证(应急方案)

在npm install前设置环境变量,让Cypress下载时忽略证书校验:

  • Windows代理:添加Command Line任务执行
    set CYPRESS_INSTALL_BINARY=https://download.cypress.io/desktop/4.2.0?platform=win32&arch=x64
    set NODE_TLS_REJECT_UNAUTHORIZED=0
    
  • Linux/macOS代理:添加Command Line任务执行
    export CYPRESS_INSTALL_BINARY=https://download.cypress.io/desktop/4.2.0?platform=linux&arch=x64
    export NODE_TLS_REJECT_UNAUTHORIZED=0
    

提示:此方法会降低安全性,仅作为临时修复,需尽快排查根本原因。

2. 修复构建代理的系统证书信任链

  • 登录构建代理机器,打开证书管理工具:
    • Windows:运行certmgr.msc,切换到「本地计算机」的「受信任的根证书颁发机构」
    • Linux:执行update-ca-certificates命令,或检查/etc/ssl/certs目录
  • 访问download.cypress.io,下载其SSL证书,导入到代理机器的本地计算机信任存储(流水线任务通常以服务账户运行,需确保服务账户能访问该证书)。

3. 切换到国内Cypress镜像源

修改npm配置,使用国内镜像下载Cypress,绕开原服务器的证书问题:

npm config set cypress_download_mirror https://npm.taobao.org/mirrors/cypress/
npm install

4. 对比流水线与手动执行的npm配置差异

  • 在流水线的npm任务前添加Command Line任务,执行npm config list,输出当前npm配置
  • 在代理机器上手动执行npm config list,对比两者的代理、证书相关配置项,找出不一致的地方并修正。

5. 强制升级到稳定的Cypress新版本

尝试直接指定一个较新的稳定版本安装,新版本可能使用了更新的服务器证书:

npm install cypress@12.17.0 --save-dev

内容的提问来源于stack exchange,提问作者NK94

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 19:52:14