SSL certificate problem: unable to get local issuer certificate

Обсуждение проблем в работе программного комплекса
hostbx
Сообщения: 4
Зарегистрирован:
07 янв 2015, 19:28

SSL certificate problem: unable to get local issuer certificate

hostbx » 26 авг 2015, 10:09

Приветствую. Ранее все работало, что может быть?
Стала возникать ошибка:
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
hostbx
Сообщения: 4
Зарегистрирован:
07 янв 2015, 19:28

hostbx » 31 авг 2015, 14:34

Ребята, хэлп. Подскажите куда посмотреть!
hordesalik
Сообщения: 11
Зарегистрирован:
13 июн 2013, 09:37

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

hordesalik » 06 сен 2015, 11:28

Возникла такая же проблема .скачал этот сертификат:
http://curl.haxx.se/ca/cacert.pem

положил по пути, как из Вашего примера. Перезапустил сервер - не заработало. Добавил в конце php.ini пустую строку - все подхватилось
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 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", проверю.
hordesalik
Сообщения: 11
Зарегистрирован:
13 июн 2013, 09:37

hordesalik » 07 сен 2015, 00:11

да. дело в том, что 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);
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 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 линк.
Никаких ошибок и ругательств на сертификат на вашем тесте нет.
hordesalik
Сообщения: 11
Зарегистрирован:
13 июн 2013, 09:37

hordesalik » 07 сен 2015, 09:41

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

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