Как настроить, где сервер OpenVPN будет считывать клиентские сертификаты?

Как настроить, где сервер OpenVPN будет считывать клиентские сертификаты?

Мы запускаем серверы OpenVPN на нескольких автоматически масштабируемых экземплярах (для избыточности и самовосстановления), поэтому они предоставляются в скриптовом режиме. Наш подход к управлению клиентскими сертификатами в этих эфемерных экземплярах довольно неуклюж и в настоящее время включает извлечение tarball в каталог /etc/openvpn/easy-rsa/pki.

Я хотел бы переместить только клиентские сертификаты в общий сетевой каталог, но не смог выяснить, какие параметры конфигурации информируют OpenVPN об этих подкаталогах PKI. ( ca/cert/key/dhВсе параметры указывают глубоко в иерархии, т. е. /etc/openvpn/easy-rsa/pki/issued/server.crt, что, как мне кажется, подразумевает отсутствие каких-либо встроенных предположений о структуре каталогов Easy-RSA.)

Как openvpn находит эти файлы?

решение1

Привет и спасибо за вопрос...

Это немного проще, чем вы думаете ;-). Вам не нужны все клиентские сертификаты. Клиентские сертификаты нужны для клиента...

Рядом с файлом конфигурации находятся 3-4 сгенерированных и «связанных» файла, которые можно встроить как раздел непосредственно в файл конфигурации (это все, что вам нужно иметь на сервере/клиенте).

  • Ключ TLS (необязательно, но неплохо использовать ;-) )

Это общий ключ для защиты связи даже до начала клиентского трафика - без знания этого ключа сервер просто проигнорирует вашу связь. Этот файл одинаков на сервере и клиенте

  • Центр сертификации CA — это сертификат, который используется для подтверждения доверия удаленной стороны.

    • сервер: Сертификат органа, выдающего клиентский сертификат. ЭТО то, что вы ищете, так как этот файл может использоваться для проверки ВСЕХ выданных клиентских сертификатов во время соединения. Этот файл может использоваться для проверки текущих и будущих сертификатов, выданных тем же CA (это то, что покрывается easy-rsa)

    • клиент: этот файл используется для проверки сертификата сервера на предмет его надежности. Он может быть таким же, как на стороне сервера, но технически сертификат сервера может быть выдан другим CA, чем сертификаты клиентов.

  • ключ

закрытый ключ, используемый для защиты связи. Этот файл должен храниться в безопасности, поскольку он подтверждает вашу личность.

  • сертификат

сертификат (открытый ключ, «обернутый» дополнительной информацией, связанной с Центром сертификации в структуре X.509). Этот файл может быть даже общедоступным, поскольку он используется только для проверки достоверности сообщения (что используемый ключ для подписи действительно «тот самый» доверенный).


Как вы упомянули easy-rsa, CA, скорее всего, одинаков для клиентской и серверной стороны. Как только у вас есть общий ключ TLS, общий файл CA и собственный ключ с соответствующим сертификатом, у вас есть все необходимое, чтобы все заработало.

После того, как вы сгенерируете ключ и сертификат для пользователя и доставите их пользователю (или, по крайней мере, отправите), они вам больше не понадобятся, и этот ключ+сертификат пользователя можно даже удалить с сервера...

В «большом» Центре сертификации ключ пользователя даже не известен выдающему серверу, поскольку запрос на сертификацию содержит открытый ключ (производную информацию из закрытого ключа), который необходим для создания подписанного сертификата — ключ генерируется на стороне клиента и никогда не покидает его в ходе процесса...

Связанный контент