справочник помощи по Happ RUПоиск/
Ошибки и диагностика

Ошибка TLS в Happ: почему не проходит рукопожатие

Где искать причину

Время, сертификаты и TLS

Сначала проверьте дату и время устройства. Затем сравните работу в другой сети и проверьте влияние программ, которые перехватывают HTTPS.

К разбору и действиям ↓
В этой статье

Ошибка TLS может иметь разные причины. Отключение проверки сертификата снижает защиту соединения; безопаснее искать причину и сохранять проверку включённой.

Сбито время на устройстве

Сертификаты действуют в пределах дат. Если часы отстают или спешат, сервер отвергает соединение. Включите автоматическую установку времени и даты.

Сеть вмешивается в соединение

Некоторые корпоративные и публичные сети подменяют сертификаты. Проверьте в мобильной сети: если там работает - дело в Wi-Fi.

Сервер недоступен или сменил параметры

Обновите подписку в Happ, чтобы получить актуальный список, и выберите другой сервер.

Подписка истекла. Просроченный доступ выглядит как отказ сервера. Дата окончания видна в кабинете.

Проверки по порядку

Идите сверху вниз и останавливайтесь, как только заработало.

  1. Время и дата - автоматически. Windows: Параметры → Время и язык. Android и iPhone: настройки даты и времени, автоматическое определение. После смены переподключитесь.
  2. Другой сервер. В списке серверов выберите тот, у которого пинг показывает доступность, и подключитесь снова.
  3. Другая сеть. Переключитесь с Wi-Fi на мобильную сеть или наоборот. Если в одной сети работает, а в другой нет - причина в сети.
  4. Обновить подписку. В меню подписки обновите список серверов: параметры могли измениться.
  5. Убрать посредников. Отключите другой VPN-клиент, антивирус с проверкой защищённого трафика и системный прокси.

Как отличить от других ошибок

Сообщение появилось при вставке ссылки. Это ошибка импорта, а не TLS: ссылка обрезана или скопирован не тот текст.

Подключение активно, но сайты не грузятся

Похоже на TLS-проблему на стороне сети или времени. Начните с первого шага проверок.

Ядро не запускается вообще. Это не TLS: соединение даже не начинается. Смотрите раздел про запуск ядра.

Частые вопросы

Почему помогает смена времени?

Сертификаты сервера действуют в определённый период. Если часы устройства выходят за него, соединение отвергается как недоверенное.

Ошибка только в одной сети - что это значит?

Сеть вмешивается в защищённые соединения. В такой сети можно попробовать другой сервер, но надёжнее сменить сеть.

Нужно ли менять подписку?

Нет, если срок не истёк. Обновите список серверов в приложении и попробуйте другой сервер.

TLS - это защищённое рукопожатие с сервером. Если оно не проходит, соединение не поднимается. Первая причина встречается чаще всего и устраняется за минуту.

Проверьте время на устройстве - это первая причина

Сертификаты привязаны ко времени. Если часы на iPhone сбились хотя бы на несколько минут, рукопожатие не пройдёт. «Настройки» → «Основные» → «Дата и время» → включить автоматическую установку.

Что происходит

При подключении клиент и сервер проверяют друг друга: сервер показывает сертификат, клиент сверяет его с ожидаемыми параметрами. Ошибка TLS означает, что проверка не сошлась - по времени, по имени, по параметрам шифрования или потому, что ответ пришёл не от того, кого ждали.

Порядок проверки

  1. Проверьте дату и время. Автоматическая установка времени должна быть включена. Это самая частая причина, особенно после разряда батареи в ноль.
  2. Обновите подписку. Параметры сервера могли измениться, а у вас старый набор.
  3. Смените сервер. Если ошибка на одном сервере, а на других нет - дело в его настройках. Сообщите об этом сервису доступа.
  4. Проверьте сеть. Некоторые публичные сети подменяют сертификаты - тогда рукопожатие не проходит именно там. Проверьте, повторяется ли ошибка на мобильном интернете.
  5. Обновите приложение и систему. Старые сборки и старые версии iOS могут не поддерживать современные наборы шифров - про версии iOS.
Где появляется ошибка Вероятная причина
На всех серверах и во всех сетях время на устройстве или устаревшее приложение
Только в одной сети (например, на работе) сеть вмешивается в соединение
Только на одном сервере параметры этого сервера
После смены подписки несовместимость параметров с вашей сборкой

Чего делать не нужно

  • Устанавливать чужие сертификаты «для исправления ошибки» - так отдают контроль над своим трафиком.
  • Отключать проверки в настройках клиента, если такая опция есть: ошибка исчезнет, а защита - тоже.
  • Переустанавливать iOS: к этой ошибке система отношения почти никогда не имеет.

Ошибка появилась внезапно, ничего не менял

Проверьте время и обновите подписку. Второй частый вариант - сервер сменил параметры.

На Mac та же ошибка

Причины те же, плюс возможны проблемы с сетевым расширением.

Помогает ли смена DNS?

Иногда: если имя сервера разрешается неправильно, рукопожатие идёт не с тем узлом - про DNS.

Рукопожатие TLS - это первый обмен между приложением и сервером, в котором они договариваются о шифровании. Ошибка означает, что договориться не удалось, и самая частая причина - сбитое время на устройстве.

Сначала - время

Проверьте дату, время и часовой пояс. Расхождение даже в несколько минут ломает проверку сертификатов, и соединение не устанавливается. Включите автоматическую синхронизацию времени - это чинит большинство таких ошибок.

  1. Синхронизируйте время. Настройки системы → дата и время → автоматически. После этого перезапустите приложение.
  2. Попробуйте другой сервер. Если ошибка только на одном сервере, дело в нём: у него могли смениться параметры или сертификат.
  3. Обновите подписку. Свежий список серверов приносит и свежие параметры - как обновить.
  4. Смените сеть. В некоторых сетях (гостиничный или корпоративный Wi-Fi) соединение осматривают посредники, и рукопожатие не проходит. Проверьте через мобильный интернет.

Симптом → вывод

Когда возникает Причина Решение
На всех серверах и во всех сетях Время на устройстве Включить автосинхронизацию
Только на одном сервере Проблема на стороне сервера Сменить сервер, обновить подписку
Только в одной сети Сеть вмешивается в соединение Проверить через другую сеть
После обновления приложения Изменились требования к параметрам Откатить или обновить версию

Что такое Reality в параметрах?

Один из способов защитить соединение - про протоколы. Ошибки рукопожатия с ним лечатся так же: время, сервер, обновление подписки.

Помогает ли смена DNS?

Обычно нет: рукопожатие происходит уже после того, как адрес сервера определён. DNS чинит другую картину - когда.

Рукопожатие TLS - это момент, когда клиент и сервер договариваются о шифровании. Если оно не проходит, соединения нет вовсе. На Windows у этой ошибки есть три характерные причины, которых не бывает на телефоне.

Три причины, характерные для Windows

Ошибка · Windows: Устаревшие корневые сертификаты

  • Причина: Система давно не обновлялась, и её набор доверенных центров отстал от современных.
  • Действие: Установить обновления Windows. На Windows 7 это главная причина неработающей подписки.

Ошибка · Windows: Сбито системное время

  • Причина: Сертификаты действительны в определённый период; при неверной дате они считаются просроченными.
  • Действие: Параметры → Время и язык → включить автоматическую установку времени и часового пояса, затем синхронизировать.

Предупреждение · Антивирус: Проверка защищённых соединений

  • Причина: Антивирус подменяет сертификаты, чтобы читать HTTPS, и клиент это замечает.
  • Действие: Отключить проверку HTTPS для приложения или добавить его в исключения: антивирус.

Порядок проверки

  1. Проверьте дату и время. Самая частая и самая быстрая причина. Даже разница в несколько часов ломает рукопожатие.
  2. Установите обновления Windows. Особенно на старых системах: вместе с ними приходят и обновления корневых сертификатов.
  3. Отключите проверку HTTPS в антивирусе. Временно, чтобы проверить гипотезу. Если помогло - оставьте исключение для приложения.
  4. Попробуйте другой сервер. Ошибка может быть привязана к настройкам конкретного сервера на стороне сервиса.
  5. Обновите подписку и приложение. Параметры шифрования меняются вместе с конфигурацией: обновить подписку, обновить приложение.

Когда ошибка возникает только при обновлении подписки

Отдельный случай: соединение с серверами работает, а список серверов не обновляется с ошибкой сертификата. Значит, проблема не в туннеле, а в обычном HTTPS-запросе к адресу подписки. Здесь виноваты те же три причины - время, сертификаты, антивирус, - но проверять их проще: откройте адрес подписки в браузере. Браузер тоже ругается на сертификат? Значит, дело в системе, а не в приложении.

Не отключайте проверку сертификатов

В некоторых сборках есть настройка «не проверять сертификат». Она делает соединение уязвимым к подмене и маскирует настоящую проблему. Используйте её разве что для разовой диагностики, а потом возвращайте обратно.

Ошибка появилась внезапно, ничего не менялось

Проверьте время и обновления системы: сертификаты истекают по расписанию, и «ничего не менялось» относится к вашей стороне, а не к их.

На телефоне с той же подпиской всё работает

Это подтверждает, что дело в Windows: у телефона свой набор сертификатов и своё время.

Помогает ли смена сервера?

Иногда: если проблема в параметрах конкретного сервера. Но если причина в системе, помогать не будет ни один.

Клиент и сервер не смогли договориться о шифровании. Чаще всего виноваты сбитые часы на устройстве, реже - старая версия приложения или сменившиеся параметры сервера.

Что происходит на самом деле

Перед передачей данных клиент и сервер обмениваются приветствиями и договариваются, каким шифрованием пользоваться. Это и есть рукопожатие. Если стороны не сошлись - соединение обрывается на этом шаге, до передачи трафика дело не доходит.

Проверка по порядку

  1. Сверьте время на устройстве. Самая частая причина. Сертификаты действительны в определённом интервале: сбитые часы делают их «просроченными». Включите автоматическую установку даты и времени.
  2. Попробуйте другой сервер. Ошибка на одном сервере из списка - вопрос к нему, а не к приложению.
  3. Обновите подписку. Сервер мог сменить параметры, а в списке остались старые: что такое подписка.
  4. Обновите приложение. Старые сборки не понимают новых параметров: как обновить.
  5. Проверьте в другой сети. Если на мобильном интернете работает, а на Wi-Fi нет - дело в сети: проблема у меня или у всех.

На старых системах - отдельная история

На Windows 7 и старом Android истекают корневые сертификаты в самой системе, и рукопожатие ломается независимо от приложения: работает ли на Windows 7.

Как отличить от соседних ошибок

Сообщение Что означает
Ошибка TLS-рукопожатия Не договорились о шифровании - эта страница
Критическая ошибка ядра Соединение не запустилось вовсе: ошибка ядра
Тайм-аут Сервер не ответил вовремя: почему тайм-аут
Подключено, но интернета нет Туннель поднялся, трафик не идёт: разбор

Это блокировка провайдера?

Не обязательно. Сначала проверьте часы и другой сервер - на них приходится большинство случаев.

Помогает ли переустановка приложения?

Редко. Переустановка стирает добавленный доступ, а причина обычно вне приложения.

Ошибка TLS на телефоне и компьютере

Сверьте автоматические дату и время устройства, затем проверьте подключение в другой сети и с другим сервером из своей подписки. Не отключайте проверку сертификата ради быстрого подключения. Если ошибка сохраняется только на конкретном сервере, передайте поставщику время и текст ошибки без приватной ссылки.

Нашли ответ? Сохраните ссылку на эту инструкцию