Il problema potrebbe essere correlato alla recente scoperta di una vulnerabilità SSLv3 (POODLE). I proprietari dei siti Web sono stati costretti a rimuovere il supporto SSLv3 dai loro siti web. Dal momento che PhantomJS < v1.9.8 utilizza SSLv3 da default, è consigliabile utilizzare TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
La soluzione catchall sarebbe quella di utilizzare any
per quando più recenti versioni PhantomJS vieni con altri protocolli SSL. Ma questo renderebbe la vulnerabilità di POODLE sfruttabile su siti che non hanno ancora disabilitato SSLv3.
casperjs --ssl-protocol=any yourScript.js
Metodo alternativo: aggiornamento a PhantomJS 1.9.8 o versione successiva. Nota che l'aggiornamento a PhantomJS 1.9.8 porta a un new bug, che è particolarmente fastidioso per CasperJS.
Come verificare: aggiungere un gestore di resource.error
evento come questo, all'inizio dello script:
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);
});
Se è davvero un problema con SSLv3 l'errore sarà qualcosa del tipo:
Error code: 6. Description: SSL handshake failed
Come parte, potresti anche voler eseguire con l'opzione della riga di comando --ignore-ssl-errors=true
, quando c'è così mething sbagliato con il certificato.
fonte
2014-10-17 06:58:32
possibile duplicato di [PhantomJS che non riesce ad aprire il sito HTTPS] (http://stackoverflow.com/questions/12021578/phantomjs-failing-to-open-https-site) –