我正在为自己和同事设置Chrome 扩展程序(版本 40) 。
它的功能之一是将浏览器中收到的请求自动重定向到我们的登台服务器 IP 地址。这使我们可以避免像当前那样编辑主机文件以在登台和生产之间切换。每一分钟都很重要。。
无论如何,在将代理配置用于 HTTP 请求时,我设置的以下脚本可以完美运行。但是,当尝试在使用 https 请求 url 的站点上运行它时,它会失败并出现以下错误。
净::ERR_TUNNEL_CONNECTION_FAILED
这是我到目前为止设置的代码的主要要点。
PAC文件:https://awesomeurl.com/proxy.pac
function FindProxyForURL(url, host) {
var domains = ["url1", "url2", "url3", "url4"], // fake company urls
base = ".awesomecompany.com",
ii;
// our local URLs from the domains below example.com don"t need a proxy:
for(ii=0; ii<domains.length; ii++) {
if(shExpMatch(host, domains[ii] + base)) {
return "PROXY 11.111.111.111"; // Fake IP Address
}
}
return "DIRECT";
}
这是生成 Chrome 设置的脚本。持久性在其他地方完成。
/**
* Checks which value has been selected and generates the proxy config that will
* be used for the the chrome settings and persisted.
*
* @param {string} mode The mode requested by the user
* @return {ProxyConfig} the proxy configuration reprensented by the user's selections
* @public
*
*/
function generateProxyConfig(mode) {
switch(mode) {
case proxyValues.NORMAL:
return { mode: 'system' }
case 'production':
return {
mode: 'pac_script',
pacScript: {
url: 'https://awesomeurl.com/proxy.pac',
mandatory: true
}
}
}
}
function applyChanges ( mode, cb ) {
config = generateProxyConfig( mode );
chrome.proxy.settings.set({
value: config,
scope: 'regular'
}, cb );
}
applyChanges('production', function() {console.log('Why doesn't this work for https') })
我发现的唯一与远程相关的资源就是这个。这似乎意味着对于 iOS,由于安全隐患,PAC 文件不能用于重定向 HTTPS 流量。
我想我想看看这是否与 Chrome 相同。请提供任何已知的潜在解决方法。