Maison  >  Article  >  interface Web  >  Pourquoi PhantomJS ne parvient-il pas à ouvrir les pages HTTPS et comment puis-je y remédier ?

Pourquoi PhantomJS ne parvient-il pas à ouvrir les pages HTTPS et comment puis-je y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 15:05:31509parcourir

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

Erreurs de page HTTPS de chargement de PhantomJS

PhantomJS/CasperJS rencontrent des difficultés à ouvrir certaines pages Web, notamment https://maizepages.umich.edu. Lorsque CasperJS tente de charger cette page, il renvoie l'erreur "PhantomJS n'a pas réussi à ouvrir la page status=fail."

Détermination de la cause

Pour identifier la cause sous-jacente, il est utile d'inspecter les journaux d'erreurs. Un problème courant est le manque de prise en charge de TLSv1. Les versions de PhantomJS antérieures à 1.9.8 utilisent SSLv3 par défaut, qui a été désactivé sur de nombreux sites Web en raison de la vulnérabilité POODLE.

Solution : prise en charge de TLSv1

Pour résoudre ce problème problème, spécifiez TLSv1 comme protocole SSL à l'aide de la commande suivante :

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

Alternativement, le protocole "any" peut être utilisé, qui prendra en charge tous les protocoles SSL plus récents disponibles dans les futures versions de PhantomJS. Cependant, cela peut exposer des vulnérabilités sur les sites qui n'ont pas encore désactivé SSLv3.

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

Vérification du correctif

Pour confirmer si l'erreur est liée à SSLv3, ajoutez le gestionnaire d'erreur de ressource suivant à votre script :

<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>

Si l'erreur est effectivement liée à SSLv3, le message d'erreur ressemblera à :

Error code: 6. Description: SSL handshake failed

Option supplémentaire

Pour les erreurs liées au certificat, il est recommandé d'utiliser l'option de ligne de commande --ignore-ssl-errors=true. Cela ignorera les erreurs de vérification du certificat SSL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn