Ошибка TLS может иметь разные причины. Отключение проверки сертификата снижает защиту соединения; безопаснее искать причину и сохранять проверку включённой.
Сбито время на устройстве
Сертификаты действуют в пределах дат. Если часы отстают или спешат, сервер отвергает соединение. Включите автоматическую установку времени и даты.
Сеть вмешивается в соединение
Некоторые корпоративные и публичные сети подменяют сертификаты. Проверьте в мобильной сети: если там работает - дело в Wi-Fi.
Сервер недоступен или сменил параметры
Обновите подписку в Happ, чтобы получить актуальный список, и выберите другой сервер.
Подписка истекла. Просроченный доступ выглядит как отказ сервера. Дата окончания видна в кабинете.
Проверки по порядку
Идите сверху вниз и останавливайтесь, как только заработало.
- Время и дата - автоматически. Windows: Параметры → Время и язык. Android и iPhone: настройки даты и времени, автоматическое определение. После смены переподключитесь.
- Другой сервер. В списке серверов выберите тот, у которого пинг показывает доступность, и подключитесь снова.
- Другая сеть. Переключитесь с Wi-Fi на мобильную сеть или наоборот. Если в одной сети работает, а в другой нет - причина в сети.
- Обновить подписку. В меню подписки обновите список серверов: параметры могли измениться.
- Убрать посредников. Отключите другой VPN-клиент, антивирус с проверкой защищённого трафика и системный прокси.
Как отличить от других ошибок
Сообщение появилось при вставке ссылки. Это ошибка импорта, а не TLS: ссылка обрезана или скопирован не тот текст.
Подключение активно, но сайты не грузятся
Похоже на TLS-проблему на стороне сети или времени. Начните с первого шага проверок.
Ядро не запускается вообще. Это не TLS: соединение даже не начинается. Смотрите раздел про запуск ядра.
Частые вопросы
Почему помогает смена времени?
Сертификаты сервера действуют в определённый период. Если часы устройства выходят за него, соединение отвергается как недоверенное.
Ошибка только в одной сети - что это значит?
Сеть вмешивается в защищённые соединения. В такой сети можно попробовать другой сервер, но надёжнее сменить сеть.
Нужно ли менять подписку?
Нет, если срок не истёк. Обновите список серверов в приложении и попробуйте другой сервер.
TLS - это защищённое рукопожатие с сервером. Если оно не проходит, соединение не поднимается. Первая причина встречается чаще всего и устраняется за минуту.
Проверьте время на устройстве - это первая причина
Сертификаты привязаны ко времени. Если часы на iPhone сбились хотя бы на несколько минут, рукопожатие не пройдёт. «Настройки» → «Основные» → «Дата и время» → включить автоматическую установку.
Что происходит
При подключении клиент и сервер проверяют друг друга: сервер показывает сертификат, клиент сверяет его с ожидаемыми параметрами. Ошибка TLS означает, что проверка не сошлась - по времени, по имени, по параметрам шифрования или потому, что ответ пришёл не от того, кого ждали.
Порядок проверки
- Проверьте дату и время. Автоматическая установка времени должна быть включена. Это самая частая причина, особенно после разряда батареи в ноль.
- Обновите подписку. Параметры сервера могли измениться, а у вас старый набор.
- Смените сервер. Если ошибка на одном сервере, а на других нет - дело в его настройках. Сообщите об этом сервису доступа.
- Проверьте сеть. Некоторые публичные сети подменяют сертификаты - тогда рукопожатие не проходит именно там. Проверьте, повторяется ли ошибка на мобильном интернете.
- Обновите приложение и систему. Старые сборки и старые версии iOS могут не поддерживать современные наборы шифров - про версии iOS.
| Где появляется ошибка | Вероятная причина |
|---|---|
| На всех серверах и во всех сетях | время на устройстве или устаревшее приложение |
| Только в одной сети (например, на работе) | сеть вмешивается в соединение |
| Только на одном сервере | параметры этого сервера |
| После смены подписки | несовместимость параметров с вашей сборкой |
Чего делать не нужно
- Устанавливать чужие сертификаты «для исправления ошибки» - так отдают контроль над своим трафиком.
- Отключать проверки в настройках клиента, если такая опция есть: ошибка исчезнет, а защита - тоже.
- Переустанавливать iOS: к этой ошибке система отношения почти никогда не имеет.
Ошибка появилась внезапно, ничего не менял
Проверьте время и обновите подписку. Второй частый вариант - сервер сменил параметры.
На Mac та же ошибка
Причины те же, плюс возможны проблемы с сетевым расширением.
Помогает ли смена DNS?
Иногда: если имя сервера разрешается неправильно, рукопожатие идёт не с тем узлом - про DNS.
Рукопожатие TLS - это первый обмен между приложением и сервером, в котором они договариваются о шифровании. Ошибка означает, что договориться не удалось, и самая частая причина - сбитое время на устройстве.
Сначала - время
Проверьте дату, время и часовой пояс. Расхождение даже в несколько минут ломает проверку сертификатов, и соединение не устанавливается. Включите автоматическую синхронизацию времени - это чинит большинство таких ошибок.
- Синхронизируйте время. Настройки системы → дата и время → автоматически. После этого перезапустите приложение.
- Попробуйте другой сервер. Если ошибка только на одном сервере, дело в нём: у него могли смениться параметры или сертификат.
- Обновите подписку. Свежий список серверов приносит и свежие параметры - как обновить.
- Смените сеть. В некоторых сетях (гостиничный или корпоративный Wi-Fi) соединение осматривают посредники, и рукопожатие не проходит. Проверьте через мобильный интернет.
Симптом → вывод
| Когда возникает | Причина | Решение |
|---|---|---|
| На всех серверах и во всех сетях | Время на устройстве | Включить автосинхронизацию |
| Только на одном сервере | Проблема на стороне сервера | Сменить сервер, обновить подписку |
| Только в одной сети | Сеть вмешивается в соединение | Проверить через другую сеть |
| После обновления приложения | Изменились требования к параметрам | Откатить или обновить версию |
Что такое Reality в параметрах?
Один из способов защитить соединение - про протоколы. Ошибки рукопожатия с ним лечатся так же: время, сервер, обновление подписки.
Помогает ли смена DNS?
Обычно нет: рукопожатие происходит уже после того, как адрес сервера определён. DNS чинит другую картину - когда.
Рукопожатие TLS - это момент, когда клиент и сервер договариваются о шифровании. Если оно не проходит, соединения нет вовсе. На Windows у этой ошибки есть три характерные причины, которых не бывает на телефоне.
Три причины, характерные для Windows
Ошибка · Windows: Устаревшие корневые сертификаты
- Причина: Система давно не обновлялась, и её набор доверенных центров отстал от современных.
- Действие: Установить обновления Windows. На Windows 7 это главная причина неработающей подписки.
Ошибка · Windows: Сбито системное время
- Причина: Сертификаты действительны в определённый период; при неверной дате они считаются просроченными.
- Действие: Параметры → Время и язык → включить автоматическую установку времени и часового пояса, затем синхронизировать.
Предупреждение · Антивирус: Проверка защищённых соединений
- Причина: Антивирус подменяет сертификаты, чтобы читать HTTPS, и клиент это замечает.
- Действие: Отключить проверку HTTPS для приложения или добавить его в исключения: антивирус.
Порядок проверки
- Проверьте дату и время. Самая частая и самая быстрая причина. Даже разница в несколько часов ломает рукопожатие.
- Установите обновления Windows. Особенно на старых системах: вместе с ними приходят и обновления корневых сертификатов.
- Отключите проверку HTTPS в антивирусе. Временно, чтобы проверить гипотезу. Если помогло - оставьте исключение для приложения.
- Попробуйте другой сервер. Ошибка может быть привязана к настройкам конкретного сервера на стороне сервиса.
- Обновите подписку и приложение. Параметры шифрования меняются вместе с конфигурацией: обновить подписку, обновить приложение.
Когда ошибка возникает только при обновлении подписки
Отдельный случай: соединение с серверами работает, а список серверов не обновляется с ошибкой сертификата. Значит, проблема не в туннеле, а в обычном HTTPS-запросе к адресу подписки. Здесь виноваты те же три причины - время, сертификаты, антивирус, - но проверять их проще: откройте адрес подписки в браузере. Браузер тоже ругается на сертификат? Значит, дело в системе, а не в приложении.
Не отключайте проверку сертификатов
В некоторых сборках есть настройка «не проверять сертификат». Она делает соединение уязвимым к подмене и маскирует настоящую проблему. Используйте её разве что для разовой диагностики, а потом возвращайте обратно.
Ошибка появилась внезапно, ничего не менялось
Проверьте время и обновления системы: сертификаты истекают по расписанию, и «ничего не менялось» относится к вашей стороне, а не к их.
На телефоне с той же подпиской всё работает
Это подтверждает, что дело в Windows: у телефона свой набор сертификатов и своё время.
Помогает ли смена сервера?
Иногда: если проблема в параметрах конкретного сервера. Но если причина в системе, помогать не будет ни один.
Клиент и сервер не смогли договориться о шифровании. Чаще всего виноваты сбитые часы на устройстве, реже - старая версия приложения или сменившиеся параметры сервера.
Что происходит на самом деле
Перед передачей данных клиент и сервер обмениваются приветствиями и договариваются, каким шифрованием пользоваться. Это и есть рукопожатие. Если стороны не сошлись - соединение обрывается на этом шаге, до передачи трафика дело не доходит.
Проверка по порядку
- Сверьте время на устройстве. Самая частая причина. Сертификаты действительны в определённом интервале: сбитые часы делают их «просроченными». Включите автоматическую установку даты и времени.
- Попробуйте другой сервер. Ошибка на одном сервере из списка - вопрос к нему, а не к приложению.
- Обновите подписку. Сервер мог сменить параметры, а в списке остались старые: что такое подписка.
- Обновите приложение. Старые сборки не понимают новых параметров: как обновить.
- Проверьте в другой сети. Если на мобильном интернете работает, а на Wi-Fi нет - дело в сети: проблема у меня или у всех.
На старых системах - отдельная история
На Windows 7 и старом Android истекают корневые сертификаты в самой системе, и рукопожатие ломается независимо от приложения: работает ли на Windows 7.
Как отличить от соседних ошибок
| Сообщение | Что означает |
|---|---|
| Ошибка TLS-рукопожатия | Не договорились о шифровании - эта страница |
| Критическая ошибка ядра | Соединение не запустилось вовсе: ошибка ядра |
| Тайм-аут | Сервер не ответил вовремя: почему тайм-аут |
| Подключено, но интернета нет | Туннель поднялся, трафик не идёт: разбор |
Это блокировка провайдера?
Не обязательно. Сначала проверьте часы и другой сервер - на них приходится большинство случаев.
Помогает ли переустановка приложения?
Редко. Переустановка стирает добавленный доступ, а причина обычно вне приложения.
Ошибка TLS на телефоне и компьютере
Сверьте автоматические дату и время устройства, затем проверьте подключение в другой сети и с другим сервером из своей подписки. Не отключайте проверку сертификата ради быстрого подключения. Если ошибка сохраняется только на конкретном сервере, передайте поставщику время и текст ошибки без приватной ссылки.