无法启动 sauce 连接代理 - 接下来 InitializeSecurityContext 失败:SEC_E_UNTRUSTED_ROOT

Unable to start sauce connect with proxy - next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT

我在 windows 中使用最新的 sauce 连接并且在没有代理的情况下工作正常。现在,如果我使用 browsermobproxy,并尝试启动 sauce connect,它会失败并显示错误

>sc -u userName -k token -i tunnelName --proxy 127.0.0.1::9091 --doctor
!!! ERROR: connecting via 127.0.0.1::9091 to http://saucelabs.com:443: Couldn't connect to server.
INFO: checking if accessing https://saucelabs.com/rest/v1 works
INFO: using proxy 127.0.0.1::9091 for https://saucelabs.com/versions.json (saucelabs.com)
!!! ERROR: connecting to https://saucelabs.com/versions.json: Couldn't connect to server, reply: [empty].
!!! WARNING: can't reach https://saucelabs.com/versions.json, please check your firewall and proxy settings.

对于curl -v --proxy http://localhost:9091 https://ondemand.saucelabs.com/wd/hub/status 得到

* schannel: encrypted data buffer: offset 2241 length 4096
* schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
* Closing connection 0

我需要做哪些改变?

这是由于 Browsermob 代理按预期工作造成的,它破坏了 HTTPS 安全链以检查通过它的流量。

要将 BMP(或 WonderProxy 或其他任何东西)与 Sauce Connect 一起使用,您需要配置 Sauce Connect 以建立安全连接 而不 通过 BMP,然后将其用于正在测试的流量。

最好的方法是创建一个 PAC 文件:

function FindProxyForURL(url, host) {
    if (shExpMatch(host, "*.miso.saucelabs.com") ||
        shExpMatch(host, "*.saucelabs.com") ||
        shExpMatch(host, "saucelabs.com")) {
        // KGP and REST connections. Another proxy can also be specified.
        return "DIRECT";
    }

    // Test HTTP traffic, route it through the BMP proxy.
    return "PROXY localhost:9091";
}

然后通过 --pac 选项将其传递给 Sauce Connect:

--pac file://path/to/your/pacfile.pac

有关使用多个代理的详细信息,请参阅 Sauce Connect Docs