web-dev-qa-db-fra.com

chrome in --headless mode: Fournissez les informations d'identification/auth pour le proxy

Je cours chrome de la manière suivante:

google-chrome --headless --disable-gpu --dump-dom --disable-web-security

En raison d'un proxy d'entreprise, il semble se heurter à une fenêtre d'authentification demandant de saisir les informations d'identification. Comment puis-je injecter ces informations d'identification sur la ligne de commande?

11
cgsd

Ce n'est pas un moyen direct de le faire. Google n'autorise pas la connexion à un proxy avec un identifiant/mot de passe en mode sans tête.

Mais, j'ai pu utiliser un proxy avec credidential en utilisant un MITMProxy. D'autres technologies, telles que Squid, fonctionneraient de la même manière, mais leur utilisation serait plus compliquée.

L'astuce consiste à créer un proxy local en amont à l'aide de MITMProxy, qui a transféré votre appel via le véritable proxy que vous souhaitez utiliser. MITMProxy fait l'authentification pour vous.

Après avoir installé MITMProxy, vous pouvez l’utiliser avec la ligne de commande:

~/mitmdump -p 9000 --mode upstream:http://proxy:port --set upstream_auth=login:password --ssl-insecure

Vous devez remplacer ~/mitmdump par votre chemin réel vers mitmproxy (mitmdump l'exécutera sur votre console). - p 9000 signifie que MITMProxy écoute http: // localhost: 9000 donc vous appeler ce proxy avec Chrome headless. - le mode en amont indiquera à MITMProxy de rediriger votre trafic vers le véritable proxy que vous souhaitez utiliser. - set upstream_auth vous permet de vous connecter avec le droit credidential. - ssl-insecure vous permet d’utiliser https et d’ignorer la vérification de certificat erronée.

Ensuite, il suffit d’appeler chrome:

google-chrome --headless --disable-gpu --dump-dom --disable-web-security --proxy-server=http://localhost:9000

Avant de pouvoir l'utiliser correctement pour l'appel https, vous devez importer le certificat de sécurité MITMProxy avec certutil:

certutil -d  sql:$HOME/.pki/nssdb -A -t "C,," -n mitm -i ~/.mitmproxy/mitmproxy-ca-cert.pem

Si vous avez du mal à utiliser cette astuce, MITMProxy a une documentation bien faite: https://mitmproxy.org/

1
Anorgar