Назад | Перейти на главную страницу

Авторизация нескольких центров (CA) в OpenVPN

Желая перейти к новому центру сертификации, я хочу разрешить старым клиентам подключаться к VPN на некоторое время перекрытия. Могу ли я сделать это без запуска отдельных экземпляров OpenVPN?

Я вижу, что у меня может быть несколько сертификатов ЦС с в capath вариант конфигурации. Но при этом я все равно получаю ошибку на стороне сервера:

VERIFY ERROR: depth=0, error=unable to get local issuer certificate:

Похоже, что в дополнение к нескольким сертификатам CA мне также нужно поддерживать несколько сертификатов сервера (эмитента), поскольку в extra-certs вариант не совсем подходит для этого. Я не хочу подписать единый сертификат сервера с двумя разными центрами сертификации.

Как я могу поддерживать клиентов с сертификатами от двух разных центров сертификации в OpenVPN?

проверка клиента

Вы можете указать ссылку на файл ca <file path> в конфигурации или вы можете встроить сертификат в <ca></ca> тег прямо в файле конфигурации. В обоих вариантах может быть более одного сертификата (включая сертификат CA).

Обычно у вас есть такая структура:

-----BEGIN CERTIFICATE-----
... base64 encoded CA cert ...
-----END CERTIFICATE-----

Вы можете легко получить два сертификата CA, один из которых будет следовать за другим:

-----BEGIN CERTIFICATE-----
... base64 encoded CA cert ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... base64 encoded CA cert ...
-----END CERTIFICATE-----

Оба будут приняты для проверки клиента.

проверка сервера

Если вы меняете ЦС для клиентов, вопрос будет в том, что насчет сертификата сервера.

  • сертификат сервера подписан "третьим" центром сертификации

Это не влияет на сертификат сервера, поэтому проблем не ожидается.

  • сервер подписан тем же центром сертификации, что и сертификат клиентов

Это может быть немного сложно, так как для сервера может быть только один сертификат. После переключения на новый ЦС «старые» клиенты не увидят его как доверенного. Если у вас есть собственный ЦС, вы можете сделать перекрестный знак (по крайней мере, временно) и «поделиться» этим сертификатом ЦС с клиентами, использующими cert вариант (дополнительный сертификат, как в части «проверка клиента»), чтобы они увидели его как доверенный сертификат.

Если вы не можете использовать крестик или просто не хотите этого делать, «старые» клиенты могут по-прежнему использовать собственный ключ / сертификат для аутентификации, но они должны переключить сертификат CA (сертификат используется для подтверждения доверия удаленной стороны). Поскольку сертификат может быть общедоступным (ключ должен быть защищен), вы можете опубликовать новый сертификат, и клиент может загрузить его даже "небезопасным" способом / без подключения к VPN.