Это моя установка среды:Как исправить ошибку PHP: невозможно получить сертификат локального эмитента?
Mac OS Sierra (10.12.2)
XAMPP 5.6.23
PHP 5.6.23
Я использую версию PHP, которая входит в XAMPP:
$ which php
/Applications/XAMPP/bin/php
$ php -v
PHP 5.6.23 (cli) (built: Jun 24 2016 09:25:00)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Это мой PHP код:
$postData = array('FORM_DATA' => 'data');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://testhub.banregio.com/adq',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_FOLLOWLOCATION => true
));
$response = curl_exec($curl);
$err = curl_error($curl);
echo $response;
echo $err;
curl_close($curl);
Я уже добавила следующую строку в файл php.ini
и, конечно же, загрузила файл cacert.pem
с https://curl.haxx.se/ca/cacert.pem:
curl.cainfo=/Applications/XAMPP/xamppfiles/etc/cacert.pem
Мой файл php.ini находится в:
$ php --ini
Configuration File (php.ini) Path: /Applications/XAMPP/xamppfiles/etc
Loaded Configuration File: /Applications/XAMPP/xamppfiles/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Не работает. Я не могу установить CURLOPT_SSL_VERIFYPEER
в false
.
Далее я добавил эти варианты cURL
в приведенном выше коде:
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => '/path/to/my/exported/certificate.crt'
Сайт имеет следующий сертификат:
Конечно, я должен был экспортировать его из Доступ к брелокам:
Доступ к брелокам можно экспортировать *.pem
и *.cer
сертификатов. Я попробовал оба. Фактически, я переименовал сертификат *.cer
в *.crt
.
Не работает.
Это, как правило, является симптомом сервер не обеспечивает его промежуточный сертификат в рукопожатии TLS. –
Использование запросов Python или даже работы Postman. Разве это не что-то, что связано с PHP? –
Подтвердите, что ни один из этих http://stackoverflow.com/search?q=Unable+to+get+local+issuer+certificate не помог. Это может помочь, если вы укажете, какую библиотеку ssl вы используете. –