Два збої VPN виглядають з крісла користувача однаково, але потребують протилежних виправлень. Несумісність імені означає, що сертифікат дійсний, але виданий для чогось іншого. Помилка завершення терміну означає, що сертифікат недійсний у цю мить. Жодне не є проблемою пароля, і скидання облікових даних — найчастіше згаяна година в обох випадках. Прочитайте етап, на якому стався збій, перш ніж щось чіпати.

Текст помилки і є діагнозом

Клієнт повідомляє, яка перевірка не пройшла, навіть коли повідомлення коротке. Несумісність називає очікуване ім’я хоста й знайдене ім’я. Помилка завершення терміну згадує дати чинності або час. Ці два речення вказують на різні частини сертифіката.

Читайте їх на тому етапі, де вони з’являються. Збій під час рукостискання — це проблема сертифіката; збій після підняття тунелю — проблема маршрутизації або облікових даних. Збереження етапу — це те, що не дає розслідуванню зійти в не пов’язані налаштування.

Якщо збій різниться між спробами, є третя можливість: більше ніж один вузол за одним і тим самим іменем.

Перевірки імені: що порівнює клієнт

Клієнт порівнює ідентичність, яку очікує за конфігурацією, з іменами в сертифікаті, що містяться в розширенні subjectAltName. Необроблена IP у профілі, псевдонім, якого сертифікат не перелічує, або ім’я, що просто розв’язується в той самий сервер — усі вони не проходять цю перевірку. Дістатися потрібної машини — не те саме, що пред’явити потрібну ідентичність.

Досліджуйте сертифікат, який сервер справді пред’являє, а не файл із попередньої спроби. Наведена нижче команда запитує задане вами ім’я, тож відповідь містить сертифікат, який побачив би справжній клієнт.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -dates -ext subjectAltName

Сертифікат довіреного видавця все одно може бути для іншої служби. Залишайте перевірки імені клієнта ввімкненими, бо довіра до CA не дає прав на кожне ім’я, яке цей CA колись підписував. Вимкнення перевірки перетворює помилку конфігурації на вразливість.

Завершення терміну: чий годинник читають

Термін дії — це пара часових позначок, і перевіряч порівнює їх зі своїм годинником. Пристрій із хибним годинником повідомляє про дійсний сертифікат як про прострочений або ще не чинний, і виправляти треба годинник, а не сертифікат. Різниця у відображенні часового поясу — не те саме, що хибний базовий час.

Порівняйте дати сертифіката з UTC на клієнті, перш ніж щось висновувати:

openssl x509 -in cert.pem -noout -dates
date -u

Якщо дати справді минули, поновіть через видавця. Якщо заміна існує, але ще не набула чинності, дотримуйтеся підтриманого переходу, а не пересувайте годинник, щоб їй догодити. Повернення дати пристрою назад заради сертифіката — рішення з наслідками далеко за межами тунелю.

Чому виправлення одного викриває інше

Перевірка виконує послідовність перевірок, і перший збій зупиняє звіт. Виправте ім’я, і клієнт може тоді сказати, що ланцюг неповний або що термін дії сертифіката минув. Це не означає, що перша перевірка була зайвою. Це означає, що в ланцюга було більше ніж одна проблема, тож очікуйте другої помилки, а не читайте її як доказ того, що перше виправлення було хибним.

Кілька вузлів погіршують це. Служба з балансуванням навантаження може пред’являти різні сертифікати від різних учасників, тож тест, що проходить двічі й падає раз, говорить про парк, а не про вашого клієнта. Зберігайте адресу партнера й час спроби в діагнозі.

Саме ця деталь перетворює нестабільний тікет на відтворюваний.

Доведіть це новим з’єднанням

Після ремонту відкрийте нове з’єднання замість того, щоб відновлювати старе, і підтвердьте, що етап, який раніше збоїв, тепер проходить. Потім підтвердьте, що тунель справді передає трафік, бо успішне рукостискання — не робочий маршрут.

Зберігайте точний етап помилки та відомості про сертифікат разом із тікетом.

Саме цей запис утримує наступну людину від скидання паролів облікового запису через проблему із сертифікатом. Ідентичність і чинність — окремі питання, і RFC 5280 є орієнтиром для того, як оцінюють друге.

Схожі статті