Добавление 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 скомпрометирован, состояние выпуска безвозвратно утрачено или вы сознательно меняете алгоритм ключа либо политику сертификатов. Все три — проекты с планом перерегистрации каждого клиента, а не шаги в запросе на одно устройство. Если ничего не подходит, регистрируйте добавочно и оставьте издателя в покое.