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

cypress/base:17.3.0下Cypress报CertVerifyProcBuiltin错误解决方法

问题场景

基于cypress/base:17.3.0 Docker镜像运行Cypress测试时,测试用例可正常执行通过,但控制台会持续输出大量证书类报错,报错内容如下:

[33:0614/080128.399356:ERROR:cert_verify_proc_builtin.cc(681)] CertVerifyProcBuiltin for ws14.hotjar.com failed:
----- Certificate i=0 (OU=Cypress Proxy Server Certificate,O=Cypress Proxy CA,L=Internet,ST=Internet,C=Internet,CN=ws14.hotjar.com) -----
ERROR: No matching issuer found
报错原因

该报错由Chromium内置的证书校验逻辑触发:Cypress运行时会启动本地代理层拦截所有测试流量,自动为被拦截域名生成自签名代理证书;但cypress/base:17.3.0镜像内的Chromium默认信任存储没有预置Cypress的代理根证书,当页面加载Hotjar这类第三方服务发起的WebSocket请求时,就会打印「无匹配证书签发者」的错误。该报错不会阻塞测试逻辑,也不会导致用例失败。

修复方案

可根据实际测试场景选择对应方案解决:

  • 方案1:关闭Chromium证书校验
    该方案配置成本最低,适合不需要严格校验证书的测试场景。

    1. 修改Cypress配置文件cypress.config.js/cypress.config.ts,关闭web安全校验:
    const { defineConfig } = require("cypress");
    
    module.exports = defineConfig({
      chromeWebSecurity: false,
      // 其余原有配置保持不变
    })
    
    1. 启动Cypress时添加启动参数,全局忽略证书错误:
    cypress run --browser chrome --ignore-certificate-errors
    
  • 方案2:将Cypress代理根证书导入系统信任链
    该方案从根源解决证书信任问题,不会降低浏览器安全等级,适合对测试环境安全要求较高的场景。在项目Dockerfile中添加如下构建步骤即可:

    FROM cypress/base:17.3.0
    # 保留原有安装依赖、拷贝项目代码等构建步骤
    # 提取Cypress内置代理根证书,导入系统信任存储
    RUN mkdir -p /usr/local/share/ca-certificates/cypress \
        && npx cypress install > /dev/null 2>&1 \
        && cp /root/.cache/Cypress/*/Cypress/resources/app/packages/network/lib/ca.pem /usr/local/share/ca-certificates/cypress/cypress-proxy-ca.crt \
        && update-ca-certificates
    
  • 方案3:拦截无关第三方请求
    如果测试流程不依赖Hotjar这类用户行为追踪、站点统计类第三方服务,可以直接在Cypress全局钩子中拦截对应域名的所有请求,直接返回空响应,从源头避免触发证书校验逻辑:

    // 在cypress/support/e2e.js(或对应支持文件)中添加全局拦截规则
    beforeEach(() => {
      cy.intercept(/.*hotjar\.com.*/, { statusCode: 204, body: '' })
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:39:28