VPN перестаёт подключаться, в журнале упоминается сертификат, и первая мысль — заменить профиль. Часы устройства, отстающие или спешащие на минуты или часы, дают именно эту ошибку, потому что срок действия сертификата оценивается относительно местного момента. Ярлык часового пояса на экране не является проблемой; проблема в самом времени. Проверьте часы, прежде чем трогать любые материалы сертификата.

Ошибка выглядит как проблема сертификата, а не часов

Рукопожатие TLS не удаётся, когда сертификат другой стороны выходит за пределы окна действия относительно часов проверяющего. Эта проверка выполняется на клиенте, поэтому неверные часы клиента отвергают совершенно исправный сертификат. Текст ошибки называет сертификат, и поэтому люди меняют его и снова видят тот же сбой. Часы — более дешёвая гипотеза, и их следует проверить первыми.

Часы, спешащие относительно реального времени, отвергают действующий сертификат как истёкший; часы, отстающие, отвергают более новый как ещё не вступивший в силу. Оба сообщения указывают на даты, и оба возникают без какого-либо контакта с удостоверяющим центром. Это и есть признак: настоящее истечение срока затрагивает каждого клиента, а проблема часов — только ту одну машину с неверным временем.

Прочитайте момент, затем сертификат

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

date -u
timedatectl
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

Если местные часы неверны, проверьте, синхронизированы ли они и с чем. Машина с отключённой синхронизацией или с источником времени, до которого не может добраться, уходит, пока что-то не сломается. Вывод статуса называет источник и последнюю успешную коррекцию, что полезнее одного текущего смещения. Большое смещение без настроенного источника — это другая проблема, чем небольшое смещение относительно работающего источника.

timedatectl timesync-status
chronyc tracking

Остановитесь, если сертификат действительно истёк для каждого клиента. Тогда часы в порядке, и сертификату нужно обновление, а не коррекция.

Коды входа не работают по связанной, но другой причине

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

Выясните, какой компонент отклонил попытку, потому что клиент VPN, шлюз и поставщик идентичности сообщают о разных этапах. Если код отклонён, а пароль принят, учётная запись, вероятно, в порядке, и подозреваемым являются часы. Если отклонены оба, учётная запись может быть заблокирована, а часы — ложный след. Следуйте рекомендациям поставщика по восстановлению, а не одобряйте запросы, которые вы не начинали.

Не переводите часы назад, чтобы код сработал. Это скрывает причину и ломает следующую проверку на основе времени.

Исправьте источник, а не отображаемый час

Синхронизация — это сетевая служба, и туннель может изменить доступность источника времени. Корпоративный источник может требовать туннеля, а публичный может быть заблокирован политикой. Просмотр может работать, пока собственный путь службы времени не работает, и поэтому эту зависимость легко упустить. NTP — это протокол, лежащий в основе коррекции, и ему нужен собственный путь, как и любой другой службе.

sudo systemctl status systemd-timesyncd
sudo chronyc sources -v
ping -c1 203.0.113.20

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

После ремонта повторите исходное подключение и прочитайте новую ошибку отдельно. Плохая идентичность сервера, сертификат, который действительно истёк, и отклонённая учётная запись — это три разные неисправности, и их смешение и превращает простую коррекцию часов в неделю замены профилей.

Похожие статьи