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

如何在浏览器中跳过Fetch API请求的证书验证?

如何在浏览器Fetch请求中跳过自签名证书验证?

首先明确:浏览器环境下,前端JavaScript代码无法直接跳过SSL证书验证。这是浏览器的安全限制,目的是防止恶意网站绕过证书检查,保护用户数据安全。你之前添加的agent: false和rejectUnauthorized: false是Node.js环境的配置项,浏览器的Fetch API不支持这些参数,所以设置后无效。

下面是几种可行的解决办法:

1. 将自签名证书导入浏览器信任列表

这是最直接的方案,让浏览器认可你的自签名证书:

  • 从服务器导出自签名证书(格式通常为.crt或.pem)
  • 打开浏览器的证书管理页面(不同浏览器路径不同,比如Chrome:设置→隐私和安全→安全→管理证书)
  • 将导出的证书导入到「受信任的根证书颁发机构」列表中
  • 重启浏览器后,Fetch请求就不会再报证书错误

2. 通过代理服务器转发请求

搭建一个中间代理服务器,在代理层跳过证书验证,前端请求代理服务器即可:

示例代理服务器代码(Node.js):

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const https = require('https');

const app = express();

// 配置代理规则,将/api路径的请求转发到目标服务器
app.use('/api', createProxyMiddleware({
  target: 'https://你的服务器域名或IP',
  changeOrigin: true,
  secure: false, // 跳过目标服务器的证书验证
  agent: new https.Agent({ rejectUnauthorized: false })
}));

// 启动代理服务器
app.listen(3000, () => {
  console.log('代理服务器运行在 http://localhost:3000');
});

前端修改后的Fetch代码:

const response = await fetch('http://localhost:3000/api/你的接口路径', {
  method: 'POST',
  headers: {
    Authorization: `Basic ${authorization}`,
  },
  body: loginData,
});

3. 改用HTTP协议(仅测试环境)

如果只是本地开发测试,可以临时将服务器切换为HTTP协议,这样就不会涉及SSL证书验证。注意:生产环境绝对不能使用HTTP,会导致数据传输不安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:34:57