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

基于Chromedriver的代理脚本失效,如何配置Manifest适配HTTP?

问题描述

我们有一款基于Chromedriver的测试软件,用来在同一台电脑上通过不同代理做站点检测,代理通过JavaScript脚本配置连接。大概一个月前因为Manifest版本更新,修改过脚本的Manifest设置。

从昨天开始Chrome脚本失效了,浏览器会弹出登录密码输入框,还显示“您的连接不安全”的提示。

当前用的脚本模板:

var config = {
    mode: "fixed_servers",
    rules: {
        singleProxy: {
            scheme: "http",
            host: "%proxy_host",
            port: parseInt(%proxy_port)
        },
        bypassList: ["foobar.com"]
    }
};

chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});

function callbackFn(details) {
    return {
        authCredentials: {
            username: "%username",
            password: "%password"
        }
    };
}

chrome.webRequest.onAuthRequired.addListener(
    callbackFn,
    {urls: ["<all_urls>"]},
    ['blocking'] );

对应的manifest.json:

{
    "version": "1.0.0",
    "manifest_version": 3,
    "name": "Chrome Proxy",
    "permissions": [
        "proxy",
        "tabs",
        "unlimitedStorage",
        "storage",
        "<all_urls>",
        "webRequest",
        "webRequestBlocking",
        "webRequestAuthProvider"
    ],
    "host_permissions": [
        "<all_urls>"
    ],
    "background": {
        "service_worker": "proxy.js"
    },
    "minimum_chrome_version":"22.0.0" 
}

手动输入账号密码的话代理能正常工作,怀疑代理证书失效了,想改成无SSL的HTTP方式,请问能不能通过配置Manifest实现这个需求?


解决方案

1. 改用纯HTTP代理无需修改Manifest核心配置

你要的无SSL HTTP代理,不用调整Manifest文件——你的当前脚本里已经把代理scheme设为"http"了,这就是纯HTTP代理的配置。但要解决弹出密码框和“连接不安全”的问题,得注意这几点:

2. 修复自动认证失效的问题

手动输密码能正常用,说明代理本身没问题,自动认证失效大概率是Manifest V3的权限限制导致:

  • 确认webRequestAuthProvider权限已经在permissions里声明(你的Manifest里已经加了),这个权限是Manifest V3里实现代理自动认证必须的。
  • 检查chrome.webRequest.onAuthRequired的监听是否触发:可以在callbackFn里加个console.log,然后在Chrome开发者工具的Service Workers面板里看日志,确认有没有执行到这个函数。

3. 解决“连接不安全”提示

这个提示一般不是代理的SSL问题,而是目标站点的SSL证书有问题,或者代理转发HTTPS流量时的证书校验问题:

  • 如果是目标站点的证书问题,测试场景下可以给Chromedriver加启动参数--ignore-certificate-errors,跳过证书校验。
  • 如果是代理本身的SSL证书失效,切换到纯HTTP代理就可以解决,因为HTTP代理不涉及SSL握手环节,不需要证书。

4. 额外的兼容性调整

你的Manifest里minimum_chrome_version设为22.0.0完全不合理——Manifest V3要求Chrome 88及以上版本,建议改成"minimum_chrome_version": "88.0.0",避免出现兼容性报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:19:51