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

Как отозвать сертификат клиента OpenVPN в Debian

Я использовал easy-rsa/2.0 программы для создания сертификатов сервера и клиента для OpenVPN. Копировал клиентские клиентам вместе с ca.crt. Все хорошо.

Теперь мне нужно отозвать клиентский сертификат с украденного ноутбука. В /usr/share/doc/openvpn/examples/easy-rsa/2.0 есть сценарий отзыва. Я запустил это успешно, и он говорит: «База данных обновлена». Он создал несколько файлов в подкаталоге папки examples / doc.

Я скопировал созданный crl.pem к /etc/openvpn/crl.pem и я добавил crl-verify /etc/openvpn/crl.pem к server.conf.

Есть ли способ проверить, что я поступил правильно и что он действительно заблокирует доступ?

Кроме того, мне непонятно, где хранится эта «База данных» или к чему она относится? Есть ли способ проверить эту базу данных?

В каталоге easy-rsa есть файл revoke-full. Когда вы запускаете этот скрипт с вашим пользователем / ключом в качестве параметра, файл index.txt в каталоге easy-rsa / keys будет обновлен.

Вы увидите букву «R» (отозвано) в первом столбце слева для вашего пользователя.

На моем сервере у меня не было сценариев easy-rsa, но вы можете отозвать клиентские сертификаты OpenVPN без easy-rsa вручную, используя openssl.

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

# as root in /etc/openvpn
openssl ca -config openssl-server-certificate.cnf -revoke /path/to/client.crt

Это отменит сертификат и обновит базу данных, но вам все равно нужно убедиться, что OpenVPN проверяет список отзыва сертификатов, поэтому отредактируйте server.conf и проверьте наличие строки, начинающейся с crl-verify. Если вы его не нашли, добавьте его:

crl-verify /usr/share/openvpn/openssl-server.crl

(Вы можете использовать любой путь по своему усмотрению, но большинство серверов OpenVPN настроены для работы как nobody:nobody поэтому вам понадобится путь, который является исполняемым файлом всего мира, а не /etc/openvpn)

И, наконец, скажите OpenSSL восстановить список отзыва

openssl ca -config openssl-server-certificate.cnf -gencrl -out /usr/share/openvpn/openssl-server.crl

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

Использовать

./list-crl 

из каталога easy-rsa для отображения серийных номеров отозванных сертификатов.

Также проверьте журналы openvpn на наличие сообщения «CRL CHECK FAILED».