Отзыв клиентских сертификатов
Иногда может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу 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 openvpn restart
Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя сертификат client.
Обобщая всё вышесказанное для отзыва дополнительных сертификатов нужно выполнить следующие шаги:
- Сгенерировать новый список отозванных сертификатов используя команду source vars в директории /etc/openvpn/easy-rsa и выполняя команду revoke-full с именем клиента.
- Скопироватье новый список отозванных сертификатов в директорию /etc/openvpn перезаписав тем самым старый список.
- Перезапустите сервис OpenVPN.
Эта процедура может быть использована для отзыва любых созданных вами ранее сертификатов. Каждый раз при отзыве клиентского сертификата, формируется новый crl.pem. Это и есть список всех отозванных сертификатов.