首页  >  文章  >  web前端  >  尽管有“ignore-ssl-errors”和用户代理更改,为什么 PhantomJS 仍无法加载 HTTPS 页面?

尽管有“ignore-ssl-errors”和用户代理更改,为什么 PhantomJS 仍无法加载 HTTPS 页面?

Patricia Arquette
Patricia Arquette原创
2024-10-26 01:38:28660浏览

Why is PhantomJS Failing to Load HTTPS Pages Despite

PhantomJS 与 HTTPS 页面的斗争

尝试使用 PhantomJS/CasperJS 加载 HTTPS 页面时,尽管设置了“ignore-ssl-errors”,但仍可能会遇到错误修改用户代理。

此问题可能源于 SSLv3 漏洞 (POODLE),促使网站所有者禁用 SSLv3 支持。由于早期版本的 PhantomJS 默认使用 SSLv3,因此切换到 TLSv1 甚至“任何”SSL 协议可以解决该问题:

casperjs --ssl-protocol=tlsv1 yourScript.js
casperjs --ssl-protocol=any yourScript.js

或者,更新到 PhantomJS 1.9.8 或更高版本可以解决该问题,尽管它引入了一个单独的错误。

要验证 SSLv3 是否是原因,请实现“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);
});

如果错误匹配“错误代码:6. 描述” : SSL 握手失败,”SSLv3 很可能是罪魁祸首。

最后,考虑使用“--ignore-ssl-errors=true”命令行选项来处理证书问题。

以上是尽管有“ignore-ssl-errors”和用户代理更改,为什么 PhantomJS 仍无法加载 HTTPS 页面?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn