SSL handshake failed: что значит ошибка и как исправить, коротко и с данными
Конспект страницы: 4 раздела коротко, данные на 19 октября 2026 и ответы на 3 вопроса. Полный разбор с примерами: SSL handshake failed: что значит ошибка и как исправить.
Коротко
Главная / Ошибки / Handshake failed Ошибка SSL handshake failed означает, что клиент и сервер не смогли договориться о защищённом соединении на этапе рукопожатия. Причин чаще всего четыре: нет общей версии TLS или шифра, клиент не передал имя сайта, у сервера нет подходящего сертификата или порт 443 закрыт. Рукопожатие срывается на первых пакетах, поэтому ищите причину до сертификата: порт, версии TLS, имя сайта.
Конспект по разделам
На каком шаге срывается SSL handshake и что это значит
В начале каждого HTTPS-соединения клиент отправляет серверу список версий TLS и шифров, которые он знает, и имя сайта (SNI). Сервер выбирает общий вариант и отвечает сертификатом. Если общего варианта нет или сервер не понимает запрос, он обрывает соединение, и клиент пишет handshake failed.
Как найти причину SSL handshake failed командами
Если TLS 1.2 отвечает, а 1.3 нет, сервер не поддерживает новый протокол, и это не страшно. Если не отвечает ни одна версия, проблема ниже по стеку: порт, фаервол, запуск веб-сервера. В журнале Nginx ищите строки SSL_do_handshake() failed: сразу после них стоит причина, например no shared cipher (нет общего шифра) или unsupported protocol.
Что значит ошибка 525 SSL handshake failed в Cloudflare
Ошибка 525 приходит с адреса сайта, который стоит за Cloudflare. Она означает, что сам Cloudflare не смог провести рукопожатие с вашим исходным сервером. Посетитель с его стороны ни при чём.
- Установите на исходном сервере сертификат: Let's Encrypt или сертификат Cloudflare Origin CA.
- Откройте порт 443 в фаерволе сервера для адресов Cloudflare.
- Убедитесь, что виртуальный хост отвечает на домен сайта и использует SNI.
- Выберите режим шифрования Full или Full (strict).
Handshake timed out и certificate verify failed в Python и Java
В скриптах сообщения выглядят иначе, а причины те же. Ошибка Python certificate verify failed: unable to get local issuer certificate почти всегда означает, что сервер не отдаёт промежуточный сертификат: проверка цепочки. Если же сервер внутренний и подписан вашим центром, передайте его корневой сертификат в запрос: Первая команда обновляет список корней, вторая проверяет доступ с вашим корнем.
Данные
| Причина | Признак |
|---|---|
| Нет общей версии TLS или шифра | Старый клиент или сервер только на TLS 1.0 и 1.1 |
| Клиент не передаёт SNI | Обращение по IP-адресу или очень старая программа |
| Сервер не настроен на 443 | Нет сертификата, не совпал ключ, веб-сервер не запущен |
| Нужен клиентский сертификат | Сервер ждёт его, а клиент не прислал: клиентский сертификат |
| Порт закрыт или сервер не отвечает | handshake timed out, ответа нет вовсе |
Данные на 19 октября 2026.
Вопросы и ответы
SSL handshake failed что за ошибка?
Клиент и сервер не смогли договориться о шифровании до обмена данными: не нашлось общей версии TLS, не подошёл сертификат или соединение оборвалось.
Как исправить ошибку 525 SSL handshake failed?
Установите действующий сертификат на исходный сервер, откройте порт 443 и выберите в Cloudflare режим Full или Full (strict). Ошибка идёт между Cloudflare и вашим сервером.
Что значит SSL handshake timed out?
Сервер не ответил на запрос рукопожатия за отведённое время. Проверьте, открыт ли порт 443, не режет ли пакеты фаервол и не перегружен ли сервер.