Как я могу заставить OpenVPN использовать точки распространения CRL моего CA при проверке сертификатов?

У меня есть существующий PKI, в который я пытаюсь интегрировать сервер OpenVPN. Я включил точек распространения CRL в каждый сертификат CA в моей цепочке, и я публикую CRL в месте, доступном с моего сервера OpenVPN.

Проблема в том, что сервер OpenVPN, кажется, полностью игнорирует расширение CRL Distribution Points в пользу собственной опции - crl-verify . Если я отзову сертификат для пользователя и опубликую новый CRL, OpenVPN с радостью продолжит разрешать этому клиенту подключаться. Я не понимаю, почему OpenVPN не читает эти расширения, учитывая, что они были добавлены именно для этой цели.

Я могу придумать только 2 альтернативных способа проверки моих списков отзыва сертификатов:

1) У меня может быть задание cron, которое копирует CRL на сервер OpenVPN и использует параметр - crl-verify . Но поскольку у меня есть цепочка центров сертификации, как мне собрать все списки отзыва сертификатов в один файл? Если я использую режим папки - crl-verify , проблема в том, что каждый ЦС в цепочке имеет свою собственную схему серийных номеров?

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

Есть ли способ заставить OpenVPN проверять точки распространения списков отзыва сертификатов , включенные в мою цепочку сертификатов, предпочтительно с использованием механизма, встроенного в OpenVPN

РЕДАКТИРОВАТЬ: Было бы также неплохо узнать, есть ли какие-либо способы сделать это на стороне клиента (например, чтобы клиенты могли проверить действительность сертификата сервера OpenVPN). Было бы намного проще, если бы - crl-verify принимал URL.

1
задан 5 June 2017 в 23:15
1 ответ

Я считаю, что вы правы, что OpenVPN не имеет этой функции.
Что касается того, почему, у меня нет ответа, кроме общего мнения, что OpenVPN чаще настраивается с их собственным довольно упрощенным easy-rsa для выделенного PKI.

Не похоже, что --crl-verify ... будет хорошо работать с CRL для нескольких центров сертификации.

Однако, если вы используете - capath dir , а не - ca file для настройки ваших центров сертификации, capath опция ожидает как сертификат CA, так и CRL в этом каталоге. Я считаю, что это будет приемлемый вариант, если вы будете регулярно экспортировать CRL на сервер OpenVPN.

Другой вариант,и я согласен с тем, что вы должны быть осторожны с тем, как это реализовано, это было бы для подключения сценария. Вы можете использовать ловушку - tls-verify cmd в сочетании с - tls-export-cert directory и переменной среды peer_cert .
Это позволит вашему настраиваемому сценарию с сертификатом однорангового узла сказать последнее слово, должно ли рукопожатие TLS быть успешным или нет.

(Подробнее см. Вышеупомянутые параметры конфигурации в руководстве . )

2
ответ дан 3 December 2019 в 20:21

Теги

Похожие вопросы