我正在尝试将curl用于API的HTTPS地址。 api只是在页面上显示一个字符串结果,并且不会返回我的域名。我不确定是否有另一种方法可以做到这一点,但认为CURL是唯一的解决方案。
这可能只发生在我的本地主机上吗?
收到错误: SSL证书问题,验证CA证书是否正常
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
var_dump(curl_error($ch));
结果: 字符串'SSL证书问题,验证CA证书是否正常。细节: 错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败'(长度= 146)
答案 0 :(得分:0)
默认情况下,PHP会尝试验证对等方的证书。
如果您确定不在乎,可以执行此操作以查看cURL请求是否可以触发,仅用于测试:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
在执行cURL调用之前。
正确的方法是使用CURLOPT_CAPATH
或CURLOPT_CAINFO
实际设置cURL调用以使用服务器的现有CA证书。