Ответ 1
Проблема может быть связана с недавним открытием уязвимости SSLv3 (POODLE). Владельцы веб-сайтов были вынуждены удалить поддержку SSLv3 со своих веб-сайтов. Поскольку PhantomJS < v1.9.8 использует SSLv3 по умолчанию, вы должны использовать TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
Локальным решением было бы использовать any
, когда новые версии PhantomJS будут поставляться вместе с другими протоколами SSL. Но это сделает уязвимость POODLE доступной на сайтах, которые еще не отключили SSLv3.
casperjs --ssl-protocol=any yourScript.js
Альтернативный метод: обновление до PhantomJS 1.9.8 или новее. Обратите внимание, что обновление до PhantomJS 1.9.8 приводит к новой ошибке, что особенно раздражает CasperJS.
Как проверить: Добавьте resource.error
обработчик событий, например, в начале вашего 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);
});
Если это действительно проблема с SSLv3, ошибка будет выглядеть примерно так:
Код ошибки: 6. Описание: SSL-подтверждение не выполнено
Как и в стороне, вы также можете запустить с параметром командной строки --ignore-ssl-errors=true
, если в сертификате что-то не так.