Клієнт підключається, веде переговори секунду й потім повідомляє, що сертифікат прострочено. Перш ніж просити когось щось перевипустити, подивіться на дату на пристрої перед вами: ноутбук, що проспав місяць, телефон із ручним годинником і маршрутизатор без робочого джерела 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, розглядайте її як нову проблему, а не послаблюйте налаштування перевірки, щоб її обійти. Відмова облікового запису або відсутній маршрут після успішного поновлення — це окрема несправність з окремим рішенням.

Схожі статті