我一直在我的开发服务器上遇到问题,其中cURL在完全适用于任何HTTP的情况下,无法正常使用任何HTTPS - 甚至是具有不同协议的完全相同的资源(用于测试I'我一直在使用http和https请求google.com)。PHP cURL不能使用HTTPS
返回的cURL错误是35:“SSL/TLS握手中某处发生了问题。”
我已经梳理了Web和SO以获得解决方案,并且它们都将CURLOPT_SSL_VERIFYPEER设置为false,这不会改变任何内容,或者下载证书文件并将CURLOPT_CAINFO设置为其路径,这也不会改变任何内容。
设置证书时,我按照this tutorial和this tutorial的说明尝试同时为我请求的资源下载证书,然后下载证书包。对于我的问题的彻底性,我设置的其他选项是CURLOPT_VERBOSE = true,CURLOPT_RETURNTRANSFER = true,和CURLOPT_SSL_VERIFYHOST = 2(我已经尝试了1和2的每个组合与VERIFYPEER都是真的和假的)。我也已经在phpinfo()中确认我有OpenSSL并且已启用。
我使用了很多旧代码,这些代码在我的上一个生产服务器上运行完美,所以此代码已工作过。但是,托管是共享主机,我不知道那里的大部分配置。
您访问的网址是否相同?你遇到了我在处理这个问题时所做的大部分研究。 – Jason 2012-03-19 17:01:12
我使用了http:// www.google.com,它工作;和https:// www.google.com,但没有。 – spezied 2012-03-19 19:08:23
@Spezied,如果提供的答案回答你的问题,你可以选择它作为你的答案,所以问题可以被关闭?谢谢。 – 2012-03-24 21:33:14