我们的网站最近从 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);
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);
除了要求客户端在他们的 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
卷曲版本:7.21.6
SSL 版本:OpenSSL/1.0.0e