当前位置:  开发笔记 > 编程语言 > 正文

用CURL(php)读取SSL页面

如何解决《用CURL(php)读取SSL页面》经验,为你挑选了3个好方法。

我试图使用php和curl库下载安全(使用https)网页的内容.

但是,读取失败,我收到错误60:"SSL证书问题,验证CA证书是否正常."

还有"详细信息:SSL3_GET_SERVER_CERTIFICATE:证书验证失败"

所以...非常自我解释的错误消息.

我的问题是:如何发送SSL证书(正确的?)并获取此页面进行验证并让我进入?

另外,这是我的选项数组,以防你想知道:

    $options = array(
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => false,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:x.x.x) Gecko/20041107 Firefox/x.x", // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        CURLOPT_SSL_VERIFYHOST => 1,
    );

安德鲁,任何建议都会很棒



1> Ryan Graham..:

听起来你可能会错误地解释错误.在我看来,您所连接的网站是自签名的或其他一些常见问题.就像通常的浏览器警告一样,您最简单的方法是禁用检查.

你需要设置CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOSTFALSE.这应该禁用两个主要检查.它们可能不是必需的,但这至少应该让你前进.

要清楚,这会禁用旨在保护您的功能.只有在通过其他方式验证证书和服务器时才执行此操作.

有关PHP站点的更多信息:curl_setopt()


不要这样做.这是不安全的.相反:http://docforge.com/wiki/PHP/Curl

2> WayFarer..:

如果您想使用SSL对等验证(关闭它并不总是好主意),您可以在Windows上为所有应用程序全局使用下一个解决方案:

    从这里下载带有根证书的文件:http: //curl.haxx.se/docs/caextract.html

    添加到php.ini:

curl.cainfo=C:/path/to/cacert.pem

这一切都很神奇,CURL现在可以验证证书了.

(据我所知,Linux上没有这样的问题,至少在Ubuntu上是这样的)



3> pkanane..:

即使在遵循SO的建议之后..您可能仍然遇到如下错误的问题:

error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

问题出在SSL版本上.使用以下版本3

curl_setopt($ch, CURLOPT_SSLVERSION,3)

我假设你已经启用了对等和主机的验证,并指向一个实际的证书文件.例如.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/cacert.pem");


CURLOPT_SSLVERSION为我修好了,谢谢!
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有