Ошибка TLS-рукопожатия
TLS-рукопожатие — это знакомство приложения с сервером до начала разговора. Ошибка означает, что знакомство сорвалось: собеседники не сошлись в сертификате, времени или маршруте.
Что происходит при рукопожатии
Перед тем как передать хоть байт данных, приложение и сервер проверяют друг друга. Сервер предъявляет сертификат, приложение сверяет его с именем, по которому стучалось, и с текущей датой. Только после этого открывается канал.
Сравнение простое: вы пришли на проходную, охранник показывает пропуск, вы смотрите на фамилию и срок годности. Если фамилия чужая или срок истёк, дальше вы не идёте. Ошибка TLS — это отказ на проходной, а не сломанная дверь.
Отсюда важный вывод: соединение до сервера есть. Пакеты доходят, сервер отвечает. Не совпало что-то в проверке — и в большинстве случаев причина на вашей стороне.
Ключ появится на этой же странице сразу после оплаты.
Три устройства. Разовая оплата, карта не привязывается.
Часы устройства
Самая частая и самая обидная причина. Сертификат действителен в определённом промежутке, и приложение сверяет его с системным временем. Сбитые часы на телевизоре, планшете после долгого хранения или на компьютере с севшей батарейкой материнской платы дают эту ошибку на всех серверах сразу.
- Откройте настройки даты и времени в системе.
- Включите автоматическое определение времени и часового пояса.
- Убедитесь, что дата совпадает с сегодняшней, а не отличается на сутки или на год.
- Перезапустите Happ и подключитесь заново.
Посредник в сети
Второй по частоте случай — кто-то между вами и сервером вскрывает соединение. Так делают корпоративные шлюзы, родительский контроль, часть гостевых сетей и антивирусы с функцией проверки защищённых соединений. Все они подменяют сертификат сервера своим, и приложение справедливо считает это подозрительным.
Проверка за минуту. Раздайте интернет с телефона по сотовой связи и подключитесь через эту раздачу. Если рукопожатие проходит, вмешивается ваша основная сеть. В антивирусе ищите функцию с названием вроде «проверка защищённых соединений» или «сканирование HTTPS» и отключайте именно её, а не защиту целиком.
Устаревшая запись сервера
Сертификаты на серверах обновляются, имена меняются при переезде локации. Пока список в приложении старый, оно стучится по прежнему имени и получает сертификат, который ему не подходит. Обновление подписки переписывает записи и снимает вопрос — как это делается, показано в разборе «Не подключается».
Если ошибка держится только на одной локации, а на другой соединение поднимается, причина точно здесь. Ошибка сразу на всех локациях чаще указывает на часы или на посредника.
Убедиться, что дело не в доступе
TLS-ошибка не похожа на истёкший доступ, но перепутать их легко: и там и там кнопка не приводит к соединению. Возьмите ссылку доступа, в которой вы уверены, добавьте её в приложение и подключитесь. Рукопожатие прошло — значит с программой всё в порядке, и вопрос был в старом списке серверов. Ошибка повторилась — ищите причину на устройстве: часы, антивирус, сеть.
Живую ссылку для такой проверки можно оформить на странице доступа. А если вы только ставите приложение и до рабочего соединения ещё не доходили, начните с первого запуска — там расписано, что система спрашивает и что нужно разрешить.
Короткие ответы
При чём тут часы устройства?
У сертификата есть срок действия. Если часы ушли на дни вперёд или назад, приложение считает сертификат просроченным или ещё не начавшим действовать, и обрывает знакомство.
Ошибка появляется только в офисе. Это нормально?
Это типично. Корпоративные сети часто ставят своего посредника, который вскрывает защищённые соединения ради проверки. Для приложения это выглядит как подмена собеседника, и оно отказывается продолжать.
Чем TLS отличается от ошибки Xray core?
Ядро сообщает, что не смогло стартовать с вашими параметрами. TLS сообщает, что ядро стартовало, дошло до сервера, но не смогло подтвердить, что это именно он.