Страница 1 из 1

SSL certificate problem: unable to get local issuer certificate

Добавлено: 26 авг 2015, 10:09
hostbx
Приветствую. Ранее все работало, что может быть?
Стала возникать ошибка:
Warning: SimpleEmailService::listVerifiedEmailAddresses(): 60 SSL certificate problem: unable to get local issuer certificate in D:\OpenServer\domains\*\app\library\php-aws-ses-master\src\SimpleEmailService.php on line 371
В настройках установлен PHP-5.5
В файле PHP-5.5_php.ini:
[curl]
curl.cainfo = "%sprogdir%/modules/php/%phpdriver%/cacert.pem"
Сам файл присутствует на своем месте в:
D:\OpenServer\modules\php\PHP-5.5\cacert.pem

Windows 7 x64
open server 5.2.2

Добавлено: 31 авг 2015, 14:34
hostbx
Ребята, хэлп. Подскажите куда посмотреть!

Решил такую же проблему

Добавлено: 06 сен 2015, 11:28
hordesalik
Возникла такая же проблема .скачал этот сертификат:
http://curl.haxx.se/ca/cacert.pem

положил по пути, как из Вашего примера. Перезапустил сервер - не заработало. Добавил в конце php.ini пустую строку - все подхватилось

Добавлено: 06 сен 2015, 22:13
Максим
hordesalik писал(а):Возникла такая же проблема .скачал этот сертификат:
http://curl.haxx.se/ca/cacert.pem

положил по пути, как из Вашего примера. Перезапустил сервер - не заработало. Добавил в конце php.ini пустую строку - все подхватилось
Хотите сказать что на работу с cacert.pem влияет пустая строка в конце файла php.ini? Да не может такого быть. Дайте пример кода на PHP, где можно получить ошибку "unable to get local issuer certificate", проверю.

Добавлено: 07 сен 2015, 00:11
hordesalik
да. дело в том, что php.ini должен оканчиваться пустой строкой иначе последняя директива не считывается. вот это были последние 2 строчки php.ini и они не прочитались
[curl]
curl.cainfo = "%sprogdir%/modules/php/%phpdriver%/cacert.pem"
после того как я добавил еще одну пустую строку - заработало

для теста можно отправить curl запрос на https линк.
		$ch = curl_init();
		curl_setopt_array($ch, [
			CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_POST => true,
			CURLOPT_POSTFIELDS => http_build_query([
				'secret' => '...',
				'response' => '...'
			])
		]);
		$response = curl_exec($ch);

Добавлено: 07 сен 2015, 01:16
Максим
hordesalik писал(а):да. дело в том, что php.ini должен оканчиваться пустой строкой иначе последняя директива не считывается. вот это были последние 2 строчки php.ini и они не прочитались
[curl]
curl.cainfo = "%sprogdir%/modules/php/%phpdriver%/cacert.pem"
В Open Server данные строки не являются последними в php.ini соответственно они не могут быть причиной проблемы.

Данные строки в Open Server по умолчанию прописаны в конфиге PHP в середине файла, сам файл cacert.pem присутствует в каждой папке с PHP.
hordesalik писал(а):для теста можно отправить curl запрос на https линк.
Никаких ошибок и ругательств на сертификат на вашем тесте нет.

Добавлено: 07 сен 2015, 09:41
hordesalik
Максим писал(а): В Open Server данные строки не являются последними в php.ini соответственно они не могут быть причиной проблемы.

Данные строки в Open Server по умолчанию прописаны в конфиге PHP в середине файла, сам файл cacert.pem присутствует в каждой папке с PHP.
Я давно не обновлялся. Может поэтому у меня не было этой директивы и пришлось добавлять самому...