CasperJS / PhantomJS не загружает страницу https

Я знаю, что некоторые веб-страницы PhantomJS/CasperJS не могут открыться, и мне было интересно, был ли этот один из них:https://maizepages.umich.edu. CasperJS выдает ошибку: PhantomJS не удалось открыть страницу status=fail.

Я попытался игнорировать-ssl-ошибки и изменить свой пользовательский агент, но я не уверен, как определить, какие из них использовать.

все, что я делаю прямо сейчас, это базовая настройка Каспера с casper.start(url, function () { ... }) здесь url=https://maizepages.umich.edu;

1 ответов


проблема может быть связана с недавним открытием уязвимости SSLv3 (пудель). Владельцы сайтов были вынуждены удалить поддержку SSLv3 со своих сайтов. Начиная с PhantomJS по умолчанию, вы должны использовать TLSv1:

casperjs --ssl-protocol=tlsv1 yourScript.js

решение catchall будет использовать any когда новые версии PhantomJS поставляются вместе с другими протоколами SSL. Но это сделало бы уязвимость пуделя эксплуатируемой на сайтах, которые еще не отключены Протокол SSLv3.

casperjs --ssl-protocol=any yourScript.js

альтернативный метод: обновление до PhantomJS 1.9.8 или выше. Обратите внимание, что обновление до PhantomJS 1.9.8 приводит к Новый Буг, что особенно раздражает для CasperJS.

Как проверить: добавить resource.error обработчик событий, как это в начале вашего скрипта:

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);
});

если это действительно проблема с SSLv3 ошибка будет что-то вроде:

код ошибки: 6. Описание: SSL-рукопожатие не удалось


в стороне, вы также можете захотеть запустить с --ignore-ssl-errors=true параметр командной строки, когда что-то не так с сертификатом.