我们的网站最近从http转向https。它具有REST API调用我们的客户称为这是现在不工作:为SSL配置cURL
卷曲SSL之前(工作):
$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);
SSL(不工作)之后卷曲:
$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);
我是否除了要求客户端在其REST集成代码中添加CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST,CURLOPT_CAINFO之外,还需要在我们的服务器上设置任何东西?
我真的在HTTPS一个新手,我不知道究竟是我需要搜索术语,搜索卷曲SSL对已经小时...
顺便说一句,我们的网站使用托管在Amazon EC2如果这些信息是非常重要的......
这里是返回的卷曲的错误:
error:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
卷曲版本:7.21.6
SSL版本:OpenSSL的/ 1.0.0e
http://stackoverflow.com/questions/6400300/php-curl-https -causing-exception-ssl-certificate-problem-verify-that-ca-cer – nkamm
@nkamm它仍然不起作用。我检查了从我们的客户服务器中存储的Firefox导出的.crt文件是否与我们服务器的.crt文件相同。他们是一样的。我们的服务器的.crt文件位于/etc/apache2/ssl/our_site.crt。你认为我应该把它移到其他地方吗?我已经计算了超过5个小时已经.... OH MY ... – Woppi
也请他们在选择(在Firefox中)使用第二个选项导出证书http://i.stack.imgur.com/ kZpCQ.png – nkamm