Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum kann PhantomJS keine HTTPS-Seiten öffnen und wie kann ich das Problem beheben?

Linda Hamilton
Freigeben: 2024-10-26 15:05:31
Original
508 Leute haben es durchsucht

Why does PhantomJS fail to open HTTPS pages and how can I fix it?

PhantomJS lädt HTTPS-Seitenfehler

PhantomJS/CasperJS haben Schwierigkeiten beim Öffnen bestimmter Webseiten, einschließlich https://maizepages.umich.edu. Wenn CasperJS versucht, diese Seite zu laden, gibt es den Fehler „PhantomJS konnte den Seitenstatus nicht öffnen“ zurück.

Bestimmen der Ursache

Um die zugrunde liegende Ursache zu identifizieren, Es ist hilfreich, die Fehlerprotokolle zu überprüfen. Ein häufiges Problem ist die fehlende Unterstützung für TLSv1. PhantomJS-Versionen vor 1.9.8 verwenden standardmäßig SSLv3, das aufgrund der POODLE-Sicherheitslücke auf vielen Websites deaktiviert wurde.

Lösung: TLSv1-Unterstützung

Um dieses Problem zu beheben Geben Sie bei diesem Problem TLSv1 als SSL-Protokoll mit dem folgenden Befehl an:

<code class="sh">casperjs --ssl-protocol=tlsv1 yourScript.js</code>
Nach dem Login kopieren

Alternativ kann das „any“-Protokoll verwendet werden, das alle neueren SSL-Protokolle unterstützt, die in zukünftigen PhantomJS-Versionen verfügbar sind. Dies kann jedoch Schwachstellen auf Websites aufdecken, die SSLv3 noch nicht deaktiviert haben.

<code class="sh">casperjs --ssl-protocol=any yourScript.js</code>
Nach dem Login kopieren

Überprüfung des Fixes

Um zu bestätigen, ob der Fehler mit SSLv3 zusammenhängt, Fügen Sie Ihrem Skript den folgenden Ressourcenfehlerhandler hinzu:

<code class="sh">casper.on("resource.error", function(resourceError){
    console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
    console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
});</code>
Nach dem Login kopieren

Wenn der Fehler tatsächlich SSLv3-bezogen ist, sieht die Fehlermeldung wie folgt aus:

Error code: 6. Description: SSL handshake failed
Nach dem Login kopieren

Zusätzliche Option

Bei zertifikatbezogenen Fehlern wird empfohlen, die Befehlszeilenoption --ignore-ssl-errors=true zu verwenden. Dadurch werden SSL-Zertifikatsüberprüfungsfehler ignoriert.

Das obige ist der detaillierte Inhalt vonWarum kann PhantomJS keine HTTPS-Seiten öffnen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!