首页 > web前端 > js教程 > 正文

为什么 PhantomJS 无法打开 HTTPS 页面以及如何修复?

Linda Hamilton
发布: 2024-10-26 15:05:31
原创
508 人浏览过

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

PhantomJS 加载 HTTPS 页面错误

PhantomJS/CasperJS 在打开某些网页时遇到困难,包括 https://maizepages.umich.edu。当 CasperJS 尝试加载此页面时,它返回错误“PhantomJS 无法打开页面 status=fail。”

确定原因

要确定根本原因,检查错误日志很有帮助。一个常见问题是缺乏对 TLSv1 的支持。 PhantomJS 1.9.8 之前的版本默认使用 SSLv3,由于 POODLE 漏洞,许多网站已禁用 SSLv3。

解决方案:TLSv1 支持

解决此问题问题,使用以下命令指定 TLSv1 作为 SSL 协议:

<code class="sh">casperjs --ssl-protocol=tlsv1 yourScript.js</code>
登录后复制

或者,可以使用“any”协议,它将支持未来 PhantomJS 版本中可用的任何较新的 SSL 协议。但是,这可能会暴露尚未禁用 SSLv3 的网站上的漏洞。

<code class="sh">casperjs --ssl-protocol=any yourScript.js</code>
登录后复制

验证修复

要确认错误是否与 SSLv3 有关,将以下资源错误处理程序添加到您的脚本中:

<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>
登录后复制

如果错误确实与 SSLv3 相关,则错误消息将类似于:

Error code: 6. Description: SSL handshake failed
登录后复制

其他选项

对于与证书相关的错误,建议使用 --ignore-ssl-errors=true 命令行选项。这将忽略 SSL 证书验证错误。

以上是为什么 PhantomJS 无法打开 HTTPS 页面以及如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!