Возникла проблема при попытке прочитать поток:

$result = file_get_contents($url, false, stream_context_create(
    ['http' => ['timeout' => (float) $this->options['timeout']]]
));

Ошибка операции SSL с кодом 1. Сообщения об ошибках OpenSSL:

ошибка: 14090086: подпрограммы SSL: ssl3_get_server_certificate: не удалось проверить сертификат

Прежде чем кто-нибудь ответит, я не буду делать

 "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),

Я надеюсь, что кто-то другой использовал letsencrypt и найдет какой-нибудь правильный способ убедиться, что он проверен.

Не стесняйтесь проверить мой сертификат в моем домене lukepolo.com

5
LukePOLO 29 Дек 2015 в 19:32

2 ответа

Лучший ответ

Openssl.cafile = curl.cainfo =

В вашем php.ini вам нужны оба

3
LukePOLO 21 Янв 2016 в 19:45

Возможно, вам потребуется установить сертификат CA (на этой странице есть ссылки для загрузки файла CA). Возможно, вам придется попробовать каждую из различных подписей, чтобы заставить ее работать. Получите версию PEM и сохраните ее на своем сервере, а затем измените свой код следующим образом

$result = file_get_contents($url, false, stream_context_create(
    [
        'http' => ['timeout' => (float) $this->options['timeout']],
        'ssl' => ['cafile' => '/path/to/file.pem']
    ]
));
1
Machavity 29 Дек 2015 в 16:42