У меня есть существующий 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.
Я считаю, что вы правы, что 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 быть успешным или нет.
(Подробнее см. Вышеупомянутые параметры конфигурации в руководстве . )