我正在测试一个使用curl_exec
php 函数和 CA 证书的 API,但是出了点问题,我有点迷茫。
我已经在我的 apache VirtualHost 上配置了 SSL,看起来还不错(打开https:://[myVHost]
... 工作)。
但是 API curl 调用给了我这个消息:
SSL peer certificate or SSH remote key was not OK
我对 SSL 不是很有经验,所以我对它的原因知之甚少。
更新:
这是我在 cURL 请求中使用的代码,我已经注释了 2 行并更改了它们的值(查看 'TODO' 行)并且以这种方式工作,但这只是一个工作...
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_RETURNTRANSFER] = true;
$opts[CURLOPT_CONNECTTIMEOUT] = 50;
$opts[CURLOPT_TIMEOUT] = 100;
$headers = array(
'Accept: application/json',
"User-Agent: APIXXX-PHP-Client");
$opts[CURLOPT_HTTPHEADER] = $headers;
$opts[CURLOPT_USERPWD] = $env->getApiKey() . ':';
if (certificatePresent()) {
// $opts[CURLOPT_SSL_VERIFYPEER] = true;
// $opts[CURLOPT_SSL_VERIFYHOST] = 2;
// TODO: SET IT BACK
$opts[CURLOPT_SSL_VERIFYPEER] = 0;
$opts[CURLOPT_SSL_VERIFYHOST] = 0;
$opts[CURLOPT_CAINFO] = $path
}
curl_setopt_array($curl, $opts);
$response = curl_exec($curl);