Яка програма володіє цим config.json у вашій конфігурації OpenVPN?
Файл із назвою config.json може належати графічному інтерфейсу, демону або формату експорту, а не OpenVPN. Знайдіть парсер, перш ніж редагувати чи замінювати ключі.
Ви знаходите файл із назвою config.json, у ньому згадується VPN-сервер, і одразу виникає припущення: це має бути з’єднання OpenVPN. Часто це не так. JSON-файл із такою назвою може належати стільничному інтерфейсу, який запускає клієнт, демону, який зберігає власні налаштування, або формату експорту продукту, і кожен із них має власну схему.
Назва файлу — найменш корисна підказка. Почніть із процесу, який читає файл, потім перевірте, чи формат, якого він очікує, взагалі є JSON, і лише після цього вирішуйте, чи редагування файлу є підтримуваним способом щось змінити.
Почніть із процесу, а не з назви файлу
Подивіться, що насправді працює. Модуль служби, скрипт запуску або програма в системному лотку назвуть бінарний файл, який вони запускають, і часто шлях до конфігурації, який вони передають. Каталог, у якому лежить файл, — друга підказка: каталоги даних програм, каталоги конфігурації служб і каталоги профілів користувачів вказують на різних власників.
Потім прочитайте документацію продукту, якому належить цей компонент. Якщо JSON належить обгортці, його ключі — ключі обгортки, і правдоподібний об’єкт, побудований за прикладом іншого продукту, буде відхилено або мовчки проігноровано.
Два файли з однаковою назвою в різних каталогах — поширена пастка. Один може бути згенерованим станом, який служба перезаписує під час кожного запуску, а інший — шаблоном, який має редагувати людина. Зміна не того файла дає виправлення, яке тримається до наступного перезапуску.
Що насправді являє собою профіль Community OpenVPN
Community OpenVPN 2.6 читає текстовий формат на основі опцій. Профіль — це послідовність директив: рядок клієнтського режиму, рядок пристрою, віддалена кінцева точка, а також опції ідентичності, шифрування й маршрутів, і він може вбудовувати матеріал сертифіката й ключа у вбудовані блоки.
Цей формат аналізується рядок за рядком самим клієнтом. Передача йому JSON-документа через опцію config не вмикає JSON-парсер; перший рядок буде відхилено як невідому директиву. Перейменування JSON-файла так, щоб він закінчувався на .ovpn, теж не перетворює його вміст, і дійсний файл опцій не стає недійсним через незвичайне розширення.
OpenVPN Connect і OpenVPN 3 Linux мають власні шляхи імпорту та керування профілями. Ці продукти можуть прийняти профіль і зберегти його у власній базі даних або стані служби, що не те саме, що JSON-файл, який випадково описує сервер.
Редагування стану, яким володіє інший компонент
Якщо JSON згенеровано, його редагування — це гонка. Працююча служба може записати його назад під час вимкнення, під час повторного підключення або під час наступної зміни налаштувань, і ручна правка зникає без помилки. Надавайте перевагу команді імпорту продукту, API керування або інтерфейсу налаштувань, бо ці шляхи оновлюють внутрішній стан, який представляє файл. Файл, що повертається після перезапуску, говорить вам, який шлях був стійким.
Якщо ви все ж редагуєте згенерований файл, спершу зупиніть службу, зробіть резервну копію та внесіть якомога меншу зміну. Потім перевірте, чи служба перезаписує файл під час запуску, бо файл, що повертається під час запуску, означає, що справжнє джерело істини деінде і правка ніколи б не збереглася.
Паролі та вбудовані приватні ключі — окрема тема. JSON може нести повний ключ так само легко, як файл опцій, тому ставтеся до будь-якого експорту як до секрету, тримайте його подалі від спільних дисків і приховуйте значення, перш ніж вставляти структуру в запитання на форумі.
Перевірка зміни та захист файлу
Перевірка — це не «JSON розбирається». Розбір доводить лише те, що дужки збігаються; він нічого не каже про те, чи власник розпізнає ключі. Перевірте власний стан продукту: список активних профілів, вибране з’єднання та повторне підключення, яке справді використовує нові значення. Профіль, що з’являється у списку, але ніколи не стає вибраним, усе ще не є профілем у використанні.
Слідкуйте за журналом компонента, який ви редагували, а не лише за журналом VPN-клієнта. Обгортка, яка відхиляє ваш файл, зазвичай повідомляє про це у власному журналі, а клієнт, який так і не отримав файл, виглядає так само, як клієнт, що отримав погані налаштування.
Збережіть копію робочого файлу та запишіть версію продукту, з якою ви тестували. Ці формати змінюються між випусками, і структура, яка працювала торік, може бути відхилена після оновлення з повідомленням, яке взагалі не згадує схему.
Підсумок: визначте процес, прочитайте його документацію, підтвердьте, чи файл узагалі є JSON, використайте підтримуваний шлях редагування та перевірте через власний стан продукту. Назва файлу ніколи не відповіла на жодне з цих питань.