PHP PhantomJS忽略SSL证书

3

我想解析一个HTTPS网页,但是在我这么做时它是空白的。所以我认为这与SSL证书有关。我该如何忽略它呢?

我正在使用 php-phantomjs


PhantomJS无法打开HTTPS网站的重复问题。 - Artjom B.
我已经看过这个了,但是我正在使用PhantomJS库的PHP版本。 - maxdachs
我发现,我可以使用 "$client->addOption('--config=config.json');" 设置我的配置,并使用选项 "sslprotocol": "any" 创建了 json 文件,但页面仍然是空白的。注:这是有关 PHP PhantomJS 项目的内容。 - maxdachs
1
很好,使用 $client->addOption('--ssl-protocol=any'); 现在可以工作了。非常感谢 :) - maxdachs
让我们在聊天中继续这个讨论 - maxdachs
1个回答

10

如在问题PhantomJS无法打开HTTPS网站中所见,您可能需要添加以下命令行选项来解决SSL/TLS问题:

phantomjs --ssl-protocol=any --ignore-ssl-errors=true --web-security=false script.js

在 php-phantomjs 中的用法有些不同,但你可以使用任何一种:

$client = Client::getInstance();
$client->getEngine()->addOption('--ssl-protocol=any');
$client->getEngine()->addOption('--ignore-ssl-errors=true');
$client->getEngine()->addOption('--web-security=false');

或者像这样加载一个 config.json 文件:

$client->getEngine()->addOption('--config=/path/to/config.json');

config.json:

{
    "sslProtocol": "any",
    "ignoreSslErrors": true,
    "webSecurityEnabled": false
}
在较旧版本的php-phantomjs中,需要使用$client->addOption(...)而不是$client->getEngine()->addOption(...)

2
不要立即使用所有三个选项。尝试仅使用其中一些,如果仍然无法解决问题,则使用更多/其他选项。 - Artjom B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接