База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

Отзыв клиентских сертификатов

Иногда может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу VPN: сотрудник уволился, потерял ноутбук или просто нужно определенному сотруднику нужно закрыть доступ к внутренней корпоративной сети.

Причины могут быть разные. Как отозвать выданный ему клиентский сертификат Open VPN?

Для того чтобы отозвать сертификат/сертификаты нужно сформировать список отозванных сертификатов и сказать серверу OpenVPN чтобы тот при коннекте клиента сверялся с этим списком.

Для начала нужно зайти в директорию центра сертификации, который обычно находится в  /etc/openvpn/easy-rsa/ и ввести команды:

cd /etc/openvpn/easy-rsa/
sudo su
source /etc/openvpn/easy-rsa/vars

Далее, используя команду команду revoke-full отзываем конкретный сертификат:

./revoke-full client

где client – это имя сертификата. С этим именем в папке /etc/openvpn/easy-rsa/keys хранятся три файла:

client.key
client.csr
client.crt

Иногда, в старых версиях OpenVPN, может появляться ошибка  23. Это нормально, но в последней версии она не появляется. В результате работы будет создан файл crl.pem в директории keys с необходимой для отзыва сертификата информацией.

Для простоты можно переместить этот файл в директорию /etc/openvpn:

sudo cp keys/crl.pem /etc/openvpn

Затем открываем файл конфигурации сервера OpenVPN вашим любимым редактором текста, например nano:

sudo nano /etc/openvpn/server.conf

и в конец файла добавляем строку crl-verify. Теперь сервер OpenVPN будет проверять список отозванных сертификатов каждый раз, когда кто-то устанавливает соединение с сервером.

crl-verify /etc/openvpn/crl.pem

Сохраните и закройте файл.

Перезапустите OpenVPN для завершения процесса отзыва сертификата:

sudo service restart openvpn

Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя сертификат client.

Обобщая всё вышесказанное для отзыва дополнительных сертификатов нужно выполнить следующие шаги:

  • Сгенерировать новый список отозванных сертификатов используя команду source vars в директории /etc/openvpn/easy-rsa и выполняя команду revoke-full с именем клиента.
  • Скопироватье новый список отозванных сертификатов в директорию /etc/openvpn перезаписав тем самым старый список.
  • Перезапустите сервис OpenVPN.

Эта процедура может быть использована для отзыва любых созданных вами ранее сертификатов. Каждый раз при отзыве клиентского сертификата, формируется новый crl.pem. Это и есть список всех отозванных сертификатов.