”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么 PhantomJS 无法打开 HTTPS 页面以及如何修复?

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

发布于2024-11-08
浏览:416

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 协议:

casperjs --ssl-protocol=tlsv1 yourScript.js

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

casperjs --ssl-protocol=any yourScript.js

验证修复

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

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 相关,则错误消息将类似于:

Error code: 6. Description: SSL handshake failed

其他选项

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

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3