Зазвичай усе починається з профілю, який підключався роками, але після відкриття в новішому клієнті падає ще до запуску тунелю. Термінал друкує щось на кшталт Options error: Unrecognized option ... in client.ovpn:130: tls-remote, з версією в дужках у кінці. Читайте це як скаргу парсера: у файлі є директива, якої цей клієнт уже не знає.

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

Прочитайте рядок із помилкою, перш ніж щось змінювати

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

Старі генератори профілів видавали не одну погану директиву, а кілька. Виправте першу помилку, запустіть клієнт знову й очікуйте наступну. Така послідовність нормальна й не означає, що правки зробили гірше.

Що сталося з keysize і tls-remote

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

tls-remote видалено у версії 2.4. Він порівнював сертифікат сервера з очікуваним ім'ям, а його заміна — verify-x509-name, яка суворіше ставиться до того, як зіставляється ім'я. Старої директиви більше немає, тож профіль, який її містить, ніколи не розбереться поточним клієнтом.

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

Перепишіть перевірку автентичності сервера

Заміна приймає очікуване ім'я та режим порівняння. verify-x509-name vpn.example.edu name вимагає, щоб суб'єкт сертифіката точно дорівнював цьому значенню. Інші режими зіставляють префікс або повний рядок суб'єкта, і вибір неправильного режиму перетворює робочий профіль на чисту помилку перевірки.

Якщо старий аргумент tls-remote був повним common name сервера, точне порівняння name зазвичай правильне. Якщо це було часткове значення, використовуйте режим префікса, а не скорочуйте очікуване ім'я, бо коротше точне зіставлення не пройде перевірку. Коли початкове значення не записане, запитайте в того, хто обслуговує сервер, який суб'єкт вони публікують.

Не вимикайте перевірку, щоб помилка зникла. Видалення перевірки автентичності сервера перетворює виправну проблему профілю на неперевірений тунель, а це саме той ризик, який директива мала відвертати.

Виправлений профіль, локальна правка або старіший клієнт

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

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

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

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

Схожі статті