Это код, который я запускаю:
$ch = curl_init('https://core.spreedly.com/v1/payment_methods/P94ca6iTsZ4fHwiP7j8tmG17fH1/retain.xml');
curl_setopt($ch, CURLOPT_CAINFO, '/home/scrutinizer/build/vendor/guzzlehttp/guzzle/src/cacert.pem');
$res = curl_exec($ch);
var_dump($res);
var_dump(curl_error($ch));
И это производит этот вывод:
bool(false)
string(125) "server certificate verification failed. CAfile: /home/scrutinizer/build/vendor/guzzlehttp/guzzle/src/cacert.pem CRLfile: none"
Но только на этом сервере! Когда я запускаю его на другой машине, та же самая установка — Ubuntu 14.04 LTS — те же версии php, curl и т. Д., Она работает отлично. Что может привести к сбою проверки сертификата для одного сервера, когда он работает для другого?
Задача ещё не решена.
Других решений пока нет …