Сертификат OpenVPN истёк? Сначала проверьте часы, потом сертификат
Неверные часы могут заставить действующий сертификат выглядеть истёкшим. Прочитайте точную ошибку TLS, найдите сбойный сертификат и продлите его через издателя.
Клиент подключается, договаривается о соединении за секунду и затем сообщает, что срок действия сертификата истёк. Прежде чем просить кого-либо перевыпустить что-либо, посмотрите на дату на устройстве перед вами: ноутбук, проспавший месяц, телефон с ручными часами и маршрутизатор без работающего источника NTP — все они сообщают стеку TLS неверный момент. Сертификат действителен только внутри окна, и проверка сравнивает это окно с тем, что утверждают локальные часы. Настройте часы, затем решите, реальна ли проблема.
Начните с часов на устройстве
Откройте терминал и прочитайте представление системы об UTC, а не виджет часов на рабочем столе, который может показывать вид с поправкой на часовой пояс или устаревшее значение, кэшированное графическим интерфейсом.
date -u
timedatectl statusЧасы, ушедшие далеко вперёд, заставляют действующий сертификат выглядеть истёкшим, а сильно отстающие — ещё недействительным, и некоторые клиенты сообщают об этом одной и той же общей ошибкой рукопожатия. Если синхронизация отключена или источник времени недоступен, сначала исправьте это и повторите проверку, прежде чем трогать какой-либо файл. Перевод часов назад, чтобы обойти истечение, не является решением: он ломает другие службы на устройстве и оставляет проблему идентичности ровно там, где она была.
Если часы верны, истечение реально, и остальная часть этого руководства применима. Обратите внимание, какой часовой пояс использует журнал клиента, прежде чем сравнивать отметки времени с двух устройств. Сервер в другом поясе может заставить продление выглядеть ранним или поздним, хотя оно не было ни тем, ни другим. Сравнивайте с отметкой времени в строке журнала самого клиента, а не с настенными часами на вашем столе.
Прочитайте строку ошибки до профиля
Сохраните точный текст. Ошибка проверки OpenVPN указывает глубину и причину, и эти два поля говорят, кто должен действовать.
VERIFY ERROR с error=certificate has expired — это ошибка действительности в определённой точке цепочки. Это не отказ по паролю и не тайм-аут, и все три требуют разных действий.
Скопируйте всю строку в заметки вместе с версией клиента. Если сообщение вместо этого говорит, что сертификат ещё не действителен, вы возвращаетесь к вопросу о часах. Если оно говорит, что издатель неизвестен, у вас проблема доверия, а не срока, и никакое продление этого не изменит.
Выясните, какой сертификат истёк
Нулевая глубина — это сертификат, предъявленный стороной, к которой вы подключились, а более высокие глубины ведут к корню. Рабочий VPN обычно допускает истечение идентичности клиента или сертификата сервера, а иногда и промежуточного, о котором организация забыла, что владеет им.
Выведите даты файлов, на которые профиль действительно ссылается, начиная с файла на глубине, указанной в ошибке.
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl x509 -in ca.crt -noout -subject -datesЕсли профиль встраивает сертификаты как встроенные блоки, а не ссылается на файлы, отдельные файлы на диске могут быть старее или новее того, что использует клиент, и поэтому сопоставление ошибки с файлом требует чтения профиля, а не списка каталога.
Продлите через издателя
Клиентский сертификат заменяет тот, кто его выдал, а сброс пароля учётной записи ничего не продлевает. Для рабочего подключения используйте канал продления, который публикует ваша организация; для размещённого сервиса войдите в портал провайдера по проверенному адресу, вместо того чтобы открывать вложение, которое якобы содержит новый профиль. Незапрошенный пакет не заслуживает доверия только потому, что в имени файла упоминается VPN.
Если вы администрируете сервер, проверьте общедоступные данные и записи о выдаче, прежде чем заменять материал, потому что смена CA затрагивает каждого клиента, который ей доверяет.
Продление одной идентичности не должно требовать замены иерархии доверия. Если кто-то предлагает новый CA, чтобы исправить один истёкший лист, сначала спросите, что ещё зависит от старого. Правила действительности и пути из RFC 5280 — это модель, которой следуют обе стороны.
Заставьте клиент использовать замену
Загрузка файла не означает его импорт. Проверьте запись подключения, которую вы действительно выбираете, и проверьте, ссылается ли профиль на внешние пути сертификатов, которые вы забыли перезаписать.
Держите старую запись видимой, пока не подключится новая, затем удалите её, чтобы никто по привычке не выбрал истёкший профиль. Подключитесь снова и убедитесь, что конкретная ошибка истечения исчезла.
Если остаётся другая ошибка TLS, рассматривайте её как новую проблему, а не ослабляйте настройки проверки, чтобы её обойти. Отказ учётной записи или отсутствующий маршрут после успешного продления — отдельная неисправность с отдельным решением.