Tengo un problema en la autenticación de proxy usando la extensión de Chrome (debido a problemas con v3, mi código se basa en el manifiesto v2). La conexión funciona con el siguiente comando curl :
curl -v -x https://11.111.11.111:222 https://www.google.com/ --proxy-header "proxy-authorization: Basic abc" --proxy-insecure
Y traté de implementarlo en extensión. Esto es lo que tengo en el archivo background.js :
chrome.runtime.onStartup.addListener(() => { const config = { mode: 'fixed_servers', rules: { singleProxy: { host: '11.111.11.111', port: 222, scheme: 'https', }, }, } chrome.proxy.settings.set({ value: config, scope: 'regular' }) }) chrome.webRequest.onBeforeSendHeaders.addListener( (details) => { const requestHeaders = details.requestHeaders || [] requestHeaders.push({ name: 'proxy-authorization', value: 'Basic abc', }) return { requestHeaders } }, { urls: ['<all_urls>'] }, ['blocking', 'requestHeaders', 'extraHeaders'] ) chrome.webRequest.onSendHeaders.addListener( (details) => { console.log('sending', details) return details }, { urls: ['<all_urls>'] }, ['requestHeaders', 'extraHeaders'] ) Tengo los siguientes permisos en manifest.json :
"permissions": [ "cookies", "storage", "tabs", "activeTab", "proxy", "webRequest", "webRequestBlocking", "<all_urls>" ] Y estos son los encabezados que se imprimen en la función onSendHeaders :
Verá que el encabezado proxy-authorization está presente. Pero obtengo ERR_PROXY_CERTIFICATE_INVALID al intentar navegar por cualquier página. ¿Los encabezados de proxy deben configurarse de una manera diferente? Porque uso --proxy-header en el comando curl, no --header .
PD. Intenté usar el método que se menciona muchas veces:
chrome.webRequest.onAuthRequired.addListener(function(details, callbackFn) { callbackFn({ authCredentials: { username: username, password: password } }); },{urls: ["<all_urls>"]},['asyncBlocking']);también, pero esta función nunca se llama (puse console.log adentro).