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

Chrome扩展Manifest v3无法调用HTTPS本地API问题求助

问题原因及解决办法

核心原因

Manifest v3 的 Service Worker 对 HTTPS 证书的校验比 Manifest v2 的背景页更严格:

  • 你本地的 HTTPS API 大概率使用自签名证书,而证书的Subject Alternative Name(SAN)字段未包含 0.0.0.0,导致 Chrome 在 Service Worker 环境下直接拒绝信任该证书,触发 Failed to fetch 错误。
  • Manifest v2 的背景页属于普通浏览器上下文,对自签名证书的校验宽松度更高;HTTP 协议本身不涉及证书校验,所以不会出现问题。

解决办法

1. 修复本地HTTPS证书(推荐)

生成自签名证书时,在 SAN 字段中添加 0.0.0.0 这个IP地址,确保Chrome能识别该证书对这个IP有效。
以OpenSSL为例,生成证书时可以在配置文件里添加:

[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name

[req_distinguished_name]

[v3_req]
subjectAltName = @alt_names

[alt_names]
IP.1 = 0.0.0.0
DNS.1 = localhost

然后用这个配置生成证书,替换本地API的证书即可。

2. 临时绕过证书校验(仅开发环境)

启动Chrome时添加命令行参数,强制忽略证书错误:

# Windows
chrome.exe --ignore-certificate-errors

# macOS
open -a "Google Chrome" --args --ignore-certificate-errors

# Linux
google-chrome --ignore-certificate-errors

⚠️ 注意:这个方法只适合开发测试,绝对不能用于生产环境,会带来严重安全风险。

3. 改用localhost代替0.0.0.0

大部分本地开发用的自签名证书默认包含localhost的SAN,把本地API的地址改成https://localhost:8080/,证书校验就能正常通过,无需修改证书。

4. 检查Manifest的CSP配置(可选)

虽然你当前的Manifest没自定义CSP,但Manifest v3默认的CSP会限制一些不安全的请求。如果上述方法无效,可以尝试在Manifest中添加宽松的CSP(仅开发用):

"content_security_policy": {
  "extension_pages": "script-src 'self'; object-src 'none'; connect-src 'self' https://0.0.0.0:8080/"
}

不过这个方法对证书问题的解决作用不大,优先尝试前面的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:03:30