Скорее всего, вы видите эту ошибку, потому что вы используете самозаверяющий сертификат, которому клиент SSL не доверяет.Я не знаком с Kohana или PHP, но я думаю, что клиент, вероятно, использует openssl под прикрытием.Где-то должен быть файл с именем что-то вроде cacerts.pem или ca-bundle.crt, который содержит якоря доверия.Эти якоря доверия являются сертификатами CA, которым доверяет клиентское программное обеспечение.Если сервер использует сертификат, выданный одним из этих ЦС, вы не должны получить ошибку.То, что вы можете попробовать, это добавить свой самоподписанный сертификат сервера в конец файла сертификата CA (например, cacerts.pem).Убедитесь, что ваш сертификат в формате PEM при добавлении.Сертификат в формате PEM ограничивается следующими строками:
В качестве альтернативы, может быть какая-то опция, чтобы сказать клиенту принять любой сертификат сервера.Не очень хорошая практика безопасности, но хорошо, как временное решение, если вы просто попробуете что-то самостоятельно.Например, в cURL есть возможность сделать это.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Правильный подход в cURL - указать файл, содержащий якоря доверия.Этот фрагмент кода основан на статье, на которую я ссылаюсь ниже.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/MyTrustedCerts.crt")
Использование CURLOPT_CAINFO, позволяет указать имя файла, содержащего ваши доверительные якоря.Этот файл должен содержать один или несколько сертификатов, которые клиентское программное обеспечение будет использовать для проверки сертификатов сервера.
Кроме того, CURLOPT_SSL_VERIFYHOST, установленный в 2, указывает cURL проверить наличие общего имени, а также убедиться, что оно соответствует указанному имени хоста.В рабочих средах значение этой опции должно быть равно 2 (значение по умолчанию).
Эта статья Использование cURL в PHP для доступа к сайтам, защищенным HTTPS (SSL / TLS) имеет некоторые обходные пути /исправляет эту ошибку при использовании cURL в PHP.