Додавання VPN-клієнта без перебудови CA
Ще один пристрій — це реєстрація, а не нове встановлення. Вирішуйте за станом емітента, зберіганням ключа та ідентичністю сервера.
Потрібен ще один сертифікат для ще одного ноутбука, але перший посібник у результатах пошуку починається з команди, яка стирає каталог PKI. Ця команда належить до першого налаштування, а не до реєстрації, і її виконання коштує вам CA, історії видачі та кожного клієнтського профілю, який довіряв старому емітенту. Рішення вужче: чи має емітент ще придатний стан і чи підходить новий пристрій під вашу політику реєстрації? Це вирішують три умови, і лише одна виправдовує перебудову.
Що перебудова насправді знищує
Повторна ініціалізація PKI замінює каталог порожньою структурою: новий ключ і сертифікат CA, порожня база видачі та новий лічильник серій. Клієнти не йдуть за цим самі; їхні профілі закріплюють старий CA, тому кожен пристрій треба реєструвати заново, а недоступні — вручну.
Тихіша втрата — облік. Відкликання залежить від знання, які серійні номери кому ви видали. Очистіть індекс, і ви все ще можете підписувати, але вже не скажете впевнено, які з виданих сертифікатів хотіли відкликати. Каталог CA із сертифікатами без відповідного стану емітента — це резервна копія, що відновлює не ту половину системи.
Копіювання закритого ключа CA поруч із працюючим сервером — інший короткий шлях, від якого варто відмовитися: він перетворює орган підпису, якому належить бути поза мережею, ще на один файл на хості з недовіреним трафіком.
Перша умова: стан емітента ще доступний
Перш ніж вирішувати, знайдіть каталог, якому сервер справді довіряє. Порівняйте сертифікат, який сервер подає як CA, з тим у каталозі PKI за відбитком, а не за іменем файлу:
openssl x509 -in ca.crt -noout -fingerprint -sha256
openssl x509 -in /etc/openvpn/ca.crt -noout -fingerprint -sha256Якщо відбитки збігаються, реєстрація додаткова і нічого перебудовувати не треба. Якщо різняться, ви підписуєте CA, якому сервер не довіряє: сертифікат встановиться чисто й відмовить під час рукостискання, і цю помилку годинами хибно вважають несправністю клієнта.
Далі пошукайте стан видачі: файл індексу, лічильник серій і файл номера CRL. Якщо індекс зник, а ключ живий, ви можете видавати, але успадковуєте проблему з записом відкликань. Запишіть це в журнал змін, бо наступний запит на відкликання це виявить.
Друга умова: у кого новий закритий ключ
Це рішення відчувають користувачі, тому ухваліть його явно. Ключ, створений на клієнті й поданий як запит, залишає закриту половину на пристрої з першої команди, і адміністратор її не торкається. Ключ, створений на сервері, простіший для пристроїв без інструментів, але робить адміністратора охоронцем кожного ключа і розширює наслідки компрометації сервера.
З Easy-RSA 3 проти наявного CA імпорт і підпис запиту — дві команди:
./easyrsa import-req /tmp/alice.req alice
./easyrsa sign-req client aliceОбирайте тип сертифіката свідомо. Запит, підписаний як серверний, а не клієнтський сертифікат, дає файл, що виглядає правильно, але партнер його відхиляє, і повідомлення про помилку рідко каже чому. З openssl ca той самий вибір живе в розширеннях, які ви передаєте, а не в типовому розділі.
Третя умова: серверу потрібно більше, ніж сертифікат
Для звичайного сервера OpenVPN з автентифікацією за сертифікатом сертифікат і є реєстрацією: спільне ім’я стає ідентичністю клієнта, і будь-який каталог, просунутий маршрут чи статична адреса прив’язані до цього імені. Додайте сертифікат і забудьте конфігурацію — тунель підключиться, але потрібні маршрути не з являться.
Платформи це змінюють. OpenVPN Access Server веде власну базу користувачів, тому підписаний сертифікат не є обліковим записом; запис має існувати й бути дозволеним. Інші шлюзи пов’язують рядок ідентичності з групою. Реєстрація одного пристрою зазвичай зачіпає дві системи, і сертифікат лише перша.
Додаткова процедура і коли перебудова доречна
Послідовність, що додає пристрій без втрат: підтвердьте емітента за відбитком, зробіть свіжу копію каталогу PKI, імпортуйте й підпишіть запит для клієнтської ролі, передайте сертифікат із ланцюжком схваленим каналом і перевірте до підключення користувача:
openssl verify -CAfile ca.crt alice.crt
openssl x509 -in alice.crt -noout -subject -issuer -dates -purposeУ рядку призначення має бути SSL client. Завершіть оновленням копії CA після видачі, бо копія, знята до запису нової серії, відновить стан без щойно доданого пристрою.
Перебудова доречна в трьох випадках: ключ CA скомпрометовано, стан видачі безповоротно втрачено або ви свідомо змінюєте алгоритм ключа чи політику сертифікатів. Усі три — проєкти з планом перереєстрації кожного клієнта, а не кроки в запиті на один пристрій. Якщо нічого не підходить, реєструйте додатково і залиште емітента спокій.