У меня есть два хоста vpn, vpn1 - основной, vpn2 - машина для горячего переключения на случай, если vpn1 выходит из строя, запланированный или незапланированный.
Прямо сейчас мы управляем клиентскими ключами с помощью пакета сценария оболочки easy-rsa, предоставляемого openvpn, но процесс, введенный моим предшественником, заключается в том, чтобы запустить сценарий ключа сборки на vpn1, а затем снова запустить его на vpn2 с теми же ответами, но только выдача ключа / crt от vpn1 клиенту.
Мне это кажется неправильным на двух уровнях: во-первых, я не думаю, что это вообще сработает; ключ от vpn1 вряд ли будет работать для аутентификации на vpn2 таким образом, и, во-вторых, это большая дополнительная работа.
Я бы предпочел синхронизировать хранилища ключей между двумя машинами. Это возможно? Если да, что мне нужно для обеспечения синхронизации между двумя машинами?
В моей конфигурации openvpn сервер задает себе вопрос, когда сертификат предоставляется конечным пользователем: подписан ли этот сертификат правильным центром сертификации?
Если на обоих серверах установлен один и тот же корневой сертификат ЦС, то вам не нужно синхронизировать хранилища ключей, потому что вам вообще не нужны два хранилища ключей. Вам нужно одно хранилище ключей, которое не обязательно либо из двух ящиков openvpn (и, возможно, не должен). Из этого хранилища ключей вы делаете корень CA доступным для обоих серверов openvpn и сообщаете им, где он находится:
ca /etc/openvpn/keys/ca.crt
и вы делаете клиентские сертификаты, подписанные этим CA, и соответствующие секретные ключи клиента доступными для клиентов. Вы также создаете пару сертификат / ключевой файл сервера и размещаете ее на одном или обоих серверах (или генерируете по одной паре для каждого сервера, если хотите; если клиенты настроены на проверку сервера и имеют копию ЦС сертификат, либо в порядке). Сервер может проверять сертификаты клиентов, поскольку у него есть копия сертификата CA. Сервер не нуждается в просмотре хранилища ключей больше, чем клиенты.