相关疑难解决方法(0)

无法使用cURL连接到HTTPS站点.返回0长度内容.我能做什么?

我有一个使用cURL(最新版本)连接到安全网关进行支付的站点.

问题是cURL总是返回0长度的内容.我只收到标题.只有当我设置cURL返回标题时.我有以下标志.

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $gatewayURI);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
Run Code Online (Sandbox Code Playgroud)

返回的标头是

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Tue, 25 Nov 2008 01:08:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 0
Content-Type: text/html
Set-Cookie: ASPSESSIONIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/
Cache-control: private
Run Code Online (Sandbox Code Playgroud)

我也试过cURL'ing不同的网站,他们返回内容很好.我认为这个问题可能与https连接有关.

我和公司谈过,他们没有帮助.

有没有其他人遇到过这个错误并知道解决方法?我应该抛弃cURL并尝试使用fsockopen()

谢谢.:)

php https curl

63
推荐指数
4
解决办法
10万
查看次数

Ping站点并在PHP中返回结果

我想创建一个小的IF程序来检查Twitter是否可用(例如,与现在不同),并返回true或false.

救命 :)

php ping

25
推荐指数
5
解决办法
12万
查看次数

为SSL配置cURL

我们的网站最近从http转为https.它有我们客户调用的REST API调用,现在不能正常工作:

SSL之前的cURL(工作):

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$api_call_url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$result = curl_exec($ch);

curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

SSL之后的cURL(不工作):

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$api_call_url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, "/customers_path_on_their_server/to/our_cacert_they_exported_via_firefox.crt");   //X.509 Certificate

$result = curl_exec($ch);

curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

除了要求客户端在其REST集成代码上添加CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST,CURLOPT_CAINFO之外,我是否需要在服务器上设置任何内容?

我真的是https的新手,我不知道我需要搜索的术语究竟是什么,搜索cURL SSL已经好几个小时......

顺便说一句,我们的网站正在使用亚马逊ec2托管,如果这些信息很重要...

这是返回的cURL错误:

 error:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)

cURL版本:7.21.6

SSL版本:OpenSSL/1.0.0e

php ssl curl

5
推荐指数
1
解决办法
9628
查看次数

标签 统计

php ×3

curl ×2

https ×1

ping ×1

ssl ×1