Если вы получите эту ошибку, сообщение будет очень конкретным, и вам нужно будет предоставить вашему дистрибутиву PHP действительный сертификат, поскольку вы пытаетесь получить доступ к защищенному ресурсу с небезопасной начальной точки.
Эта ошибка распространена, если вы работаете локально в вашем проекте.
Однако, если вы спешите и работаете локально, вы можете просто отключить проверку однорангового узла, чтобы проигнорировать это предупреждение.
Перед выполнением вашего основного кода установите для свойства verifyPeer значение false:
Замечания : перед тестированием прочитайте раздел «почему это происходит» и риски, которые у него есть.
Почему это происходит
libcurl по умолчанию выполняет проверку однорангового SSL-сертификата. Это делается с помощью хранилища сертификатов CA, которое библиотека SSL может использовать, чтобы убедиться, что сертификат сервера равноправен.
Если вы общаетесь с HTTPS, FTPS или другой TLS-используя серверы, использующие сертификаты, которые подписаны центрами сертификации, присутствующими в хранилище, вы можете быть уверены, что это действительно тот удаленный сервер.
Как упоминалось ранее, есть 2 решения:
Скажите cURL, чтобы не проверять пира. С libcurl вы отключите это с
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
С помощью инструмента командной строки curl вы отключите это с -k / - небезопасно.
Получите сертификат CA, который может подтвердить удаленный сервер, и используйте соответствующую опцию, чтобы указать этот сертификат CA для проверки при подключении. Для хакеров libcurl:
curl_easy_setopt(curl, CURLOPT_CAPATH, capath);
С помощью инструмента командной строки curl: --cacert [file].
Однако, поскольку мы используем unirest, библиотека выполняет тот же эффект, что и первая опция, использующая verifyPeer(false)
метод.
Вы должны использовать опцию 2, поскольку именно она обеспечивает соединение с защищенным сервером.