webentwicklung-frage-antwort-db.com.de

chrome im headless-Modus: Geben Sie Anmeldeinformationen/auth für den Proxy an

Ich führe Chrome folgendermaßen aus:

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

Aufgrund eines Unternehmensproxys scheint es mit einem Authentifizierungs-Popup zu stoßen, das zur Eingabe von Anmeldeinformationen auffordert. Wie füge ich diese Anmeldeinformationen in der Befehlszeile ein?

11
cgsd

Sie sind kein direkter Weg, dies zu tun. Google erlaubt im Headless-Modus keine Verbindung zu einem Proxy mit Login/Passwort.

Ich konnte jedoch Proxy mit einem MITMProxy mit Anmeldeinformationen verwenden. Andere Technologien wie Squid funktionieren ähnlich, sind jedoch komplizierter zu bedienen.

Der Trick besteht darin, einen lokalen Upstream-Proxy mit MITMProxy zu erstellen, der Ihren Anruf über den richtigen Proxy weiterleitet. MITMProxy führt die Authentifizierung für Sie durch.

Nach der Installation von MITMProxy können Sie es mit der Befehlszeile verwenden:

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

Sie müssen ~/mitmdump durch Ihren echten Pfad zu mitmproxy ersetzen (mitmdump führt es auf Ihrer Konsole aus.) - p 9000 bedeutet, dass MITMProxy auf http: // localhost: 9000 hört Sie müssen diesen Proxy mit Chrome headless aufrufen. - Der Upstream-Modus weist MITMProxy an, Ihren Datenverkehr auf den richtigen Proxy umzuleiten, den Sie verwenden möchten. - Mit upstream_auth können Sie eine Verbindung mit dem rechten herstellen credidential. - Mit ssl-insecure können Sie https verwenden und eine falsche Zertifikatsüberprüfung ignorieren.

Dann müssen Sie einfach Chrom anrufen:

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

Bevor Sie es für den https-Aufruf ordnungsgemäß verwenden können, müssen Sie das MITMProxy-Sicherheitszertifikat mit certutil importieren:

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

Wenn Sie Probleme mit diesem Trick haben, haben MITMProxy eine gut durchgeführte Dokumentation: https://mitmproxy.org/

1
Anorgar