Как исправить curl_error: SSL: альтернативное имя субъекта сертификата не соответствует имени целевого хоста «api.telegram.org» - PullRequest
0 голосов
/ 29 января 2019

Я использую telegram.php для подключения своего бота.Когда я использую sendmessage, в моих журналах все в порядке, но я ничего не получаю от бота.

Когда я проверяю свой журнал, возникает проблема, подобная этой:

ok:         False
curl_error_code:        51
curl_error:     SSL: no alternative certificate subject name matches target host name 'api.telegram.org'

Я не знаю, что делать, чтобы это исправить.

1 Ответ

0 голосов
/ 10 мая 2019

Я не знаю этого бота-телеграммы, но вижу, что он использует GuzzleHttp .Во время инициализации он не принимает никакой конфигурации Request::initialize()

public static function initialize(Telegram $telegram)
{
    if (!($telegram instanceof Telegram)) {
        throw new TelegramException('Invalid Telegram pointer!');
    }
    self::$telegram = $telegram;
    self::setClient(new Client(['base_uri' => self::$api_base_uri]));
}

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

Вам нужно установить \GuzzleHttp\RequestOptions::VERIFY в false в конфигурации клиента:

$this->client = new \GuzzleHttp\Client([
    'base_uri'                          => 'someAccessPoint',
    \GuzzleHttp\RequestOptions::HEADERS => [
        'User-Agent' => 'some-special-agent',
    ],
    'defaults'                          => [
        \GuzzleHttp\RequestOptions::CONNECT_TIMEOUT => 5,
        \GuzzleHttp\RequestOptions::ALLOW_REDIRECTS => true,
    ],
    \GuzzleHttp\RequestOptions::VERIFY  => false,
]);
...