Записки IT специалиста
Система клиентского доступа в OpenVPN построена вокруг инфраструктуры открытых ключей (PKI) и основным средством идентификации пользователя является сертификат. Располагая действительным сертификатом клиент может подключиться к любому серверу, использующему сертификаты вашего центра сертификации (CA). Если доступ пользователя необходимо прекратить, то выданный ему сертификат следует отозвать. В данной статье мы рассмотрим процесс отзыва сертификатов для различных версий Easy-RSA на платформах Windows и Linux, а также настройку OpenVPN севера для проверки сертификатов на отзыв.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Easy-RSA 2 Linux
Вторая версия Easy-RSA наиболее часто используется совместно с OpenVPN, так как входит в состав большинства актуальных на данный момент дистритбутивов. В нашем случае будет рассматриваться Ubuntu 18.04, но серьезных отличий с иными Linux системами нет, так как Easy-RSA это просто набор скриптов, облегачающий работу с OpenSSL.
Обычно корневая директория PKI находится в каталоге настроек OpenVPN — /etc/openvpn/easy-rsa, здесь и далее примем такое расположение как умолчание. Прежде чем выполнять отзыв, Easy-RSA потребуется немного настроить, откройте файл @openssl.conf и приведите к следующему виду строку:
RANDFILE = /etc/openvpn/easy-rsa/keys/.rnd
Ниже найдите опцию, которая задает срок действия списка отозванных сертификатов, по умолчанию это 30 дней, после чего его нужно будет перевыпустить, имеет смысл установить более длительный срок:
default_crl_days= 30
Сохраните изменения, после чего создайте указанный файл:
touch /etc/openvpn/easy-rsa/keys/.rnd
Теперь можно приступать к отзыву, для этих целей используется скрипт revoke-full. Перейдем в директорию Easy-RSA:
cd /etc/openvpn/easy-rsa
source ./vars
И выполним отзыв, для этого нам нужно знать CN (Commom Name) сертификата, в нашем случае это ivanov:
./revoke-full ivanov
![]()
Сообщение:
error 23 at 0 depth lookup: certificate revoked
не является ошибкой! Оно сообщает о том, что проверка сертификата не увенчалась успехом по причине его отзыва.
После выполнения данной команды впервые в каталоге /etc/openvpn/easy-rsa/keys появится файл crl.pem — список отозванных сертификатов. Данный файл будет обновляться после каждого успешного отзыва.
Easy-RSA 2 Windows
В Windows никаких дополнительных настроек производить не нужно, однако также рекомендуется увеличить срок действия CRL. Каталог Easy-RSA обычно располагается внутри каталога установки OpenVPN, по умолчанию это C:\Program Files\OpenVPN\easy-rsa. Для измненения срока действия откройте файл openssl-1.0.0.cnf и измените опцию, указав нужное количество дней:
default_crl_days= 30
Затем перейдем в каталог Easy-RSA (так как он является системным, то командная строка должна быть запущена от имени Администратора):
cd "C:\Program Files\OpenVPN\easy-rsa"
vars
revoke-full ivanov
![]()
Результатом выполнения команды также будет создание или обновление файла списка отозванных сертификатов — crl.pem.
Easy-RSA 3 Linux
Новая версия Easy-RSA пока не имеет широкого распространения и присутствует в ограниченном количестве новых дистрибутивов, в частности в Debian 10. Приемы работы с ней значительно отличаются от Easy-RSA 2 и мы посвящали этому отдельную статью, в которой рассматривали в том числе и отзыв сертификатов.
В Easy-RSA 3 для отзыва сертификатов и создания/обновления списка отозванных сертификатов предназначены разные команды, поэтому вы можете сформировать CRL заранее и подключить его к конфигурации OpenVPN не дожидаясь отзыва.
Будем также считать, что директория Easy-RSA расположена в /etc/openvpn/easy-rsa, сразу перейдем в нее:
cd /etc/openvpn/easy-rsa
Откроем файл vars, найдем и раскомментируем в нем следующую опцию, которая задает срок действия CRL, по умолчанию установлено 180 дней, укажите нужное вам значение:
set_var EASYRSA_CRL_DAYS 180
Затем сформируем список отозванных сертификатов:
./easyrsa gen-crl
Итогом выполнения данной команды будет появление файла crl.pem в директории pki.
Для отзыва сертификата выполните (предварительно перейдя в директорию Easy-RSA):
./easyrsa revoke ivanov
В данном случае вам потребуется явно подтвердить отзыв, введя yes на запрос утилиты.
![]()
После отзыва сертификата вам потребуется обновить список CRL, для этого еще раз выполните:
./easyrsa gen-crl
Еще раз напомним, что для отзыва сертификатов мы должны указать их CN, поэтому при их создании задавайте им осмысленные имена, чтобы потом не пришлось угадывать, как называется сертификат Иванова: client123, client231 или client321. Также помните о том, что отзыв сертификата — действие необратимое, даже если вы повторно выпустите сертификат с этим же именем (CN), это будет совсем другой сертификат, который придется заново выдать пользователю.
Настройка OpenVPN для работы со списком отозванных сертификатов (CRL)
После того, как вы создали или обновили CRL (файл crl.pem) его следует скопировать в директорию с ключами OpenVPN сервера, это действие следует повторять после каждого отзыва сертификата (и обновления файла crl.pem).
Затем откроем конфигурацию сервера OpenVPN и добавим туда директиву, отвечающую за проверку отозванных сертификатов. В Linux:
crl-verify keys/crl.pem
В данном случае подразумевается, что ключи и CRL находятся в директории /etc/openvpn/keys.
crl-verify "C:\\Program Files\\OpenVPN\\keys\\crl.pem"
Здесь мы также подразумеваем расположение каталогов по умолчанию, если это не так, то пути следует отредактировать.
При обновлении списка отозванных сертификатов достаточно просто скопировать с заменой файл crl.pem, если серверов несколько, то это нужно сделать на каждом из них.
После чего обязательно перезапустите службу OpenVPN сервера. Это нужно сделать потому, что OpenVPN перечитывает CRL один раз в час и в течении этого времени клиенты с отозванными сертификатами смогут продолжать подключаться и работать. В Linuх для этого выполните:
service openvpn restart
В Windows воспользуйтесь штатной оснасткой Службы.
Для клиента с отозванным сертификатом процесс подключения будет «зависать» на этапе согласования ключей и через 60 секунд выдавать в лог сообщение:
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed
При этом клиент будет продолжать попытки подключения в соответствии со значениями опции keepalive. Если используется GUI, то клиент будет «вечно» висеть в желтом цвете.

Чтобы ограничить число переподключений используйте в конфигурации клиента опцию:
connect-retry-max 25
Которая задает максимальное количество переподключений, в данном случае 25, однако вы должны указать ее заранее, передать на клиента с отозванным сертификатом вы ее не сможете. Мы рекомендуем всегда использовать эту опцию, когда вы настраиваете OpenVPN клиент на узлах, которые вы не контролируете, например, на домашних ПК или ноутбуках сотрудников.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
- Настраиваем VPN. Часть 1 — Общие вопросы
- Настраиваем VPN. Часть 2 — Cтруктура сети
- Настраиваем VPN сервер. Часть 3 — PPTP. Платформа Linux
- Настраиваем VPN сервер. Часть 4 — PPTP. Платформа Windows
- Настраиваем VPN сервер. Часть 5 — L2TP. Платформа Windows
- Ubuntu Server. Форвардинг PPTP средствами iptables
- Организация VPN каналов между офисами при помощи OpenVPN
- Организация каналов между офисами при помощи OpenVPN с дополнительной парольной защитой
- Организация VPN каналов между офисами. Маршрутизация
- Организация каналов между офисами при помощи OpenVPN на платформе Linux
- Настройка OpenVPN-сервера для доступа в интернет
- Настройка двух и более OpenVPN-серверов на одном сервере
- Почему тормозит OpenVPN? Размер буферов приема и отправки
- Как настроить несколько одновременных OpenVPN подключений в Windows
- SSH-туннели на службе системного администратора
- Создание ключей и сертификатов для OpenVPN при помощи Easy-RSA 3
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Настройка VPN-подключения в роутерах Mikrotik
- OpenVPN объединяем ключи и конфигурацию клиента в один файл
- OpenVPN и инфраструктура открытых ключей (PKI)
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
- Настраиваем PPTP или L2TP VPN-сервер при помощи RRAS в Windows Server
- Автоматическое добавление маршрутов для VPN-соединения в Windows
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
![]()
Или подпишись на наш Телеграм-канал:
Как отозвать клиентский сертификат OpenVPN?
Иногда может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу 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. Это и есть список всех отозванных сертификатов.
Похожие статьи на сайте
- Исправляем ошибку Resource temporarily unavailable (errno=11)
- Ошибка при работе OpenVPN: error=CRL has expired
- Ошибка 0E065068:configuration file routines:STR_COPY:variable has no value:conf_def
- Установка OpenVPN в Debian/Ubuntu/Mint из стандартных репозиториев проекта OpenVPN
- OpenVPN против WireGuard: краткое сравнение
- TLS: soft reset — что означает это сообщение в логах OpenVpn
- Как отозвать клиентский сертификат OpenVPN?
- Создание инфраструктуры открытых ключей OpenVPN (easy-rsa)
- Основные параметры OpenVPN
Отозвать openVPN сертификат на ER-6P
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
Оцените эту тему
kvant355
новичок
25 Дек 2021 1 0 3 39
Всем привет.
Подскажите пожалуйста, как отозвать сертификат пользователя (клиента) в openVPN сервере на edgerouter ER-6P
я в этом вопросе профан
OpenVPN сервер настраивался вот по этому мануалу
Поделиться:
| Автор | Похожие темы | Раздел | Ответов | Дата |
|---|---|---|---|---|
| K | udm-pro VPN (Wireguard, OpenVPN) | UniFi | 3 | 23 Июн 2023 |
| I | UDM Pro и OpenVPN | UniFi | 14 | 25 Окт 2022 |
| конфиг openvpn для unifi | UBIQUITI Общий форум | 8 | 10 Авг 2020 | |
| H | OpenVPN работа для определенных сайтов | Маршрутизаторы | 1 | 24 Июл 2019 |
| N | Маршрутизация OpenVPN edgerouter | Маршрутизаторы | 12 | 21 Апр 2018 |
| M | EdgeRouter X, Dual WAN + OpenVPN | Маршрутизаторы | 2 | 20 Апр 2018 |
easy rsa: CRL и отзыв сертификатов
В easy rsa отозвать сертификат безопасности можно внеся его в специальный список, который затем копируется на сервер с OpenVPN. easy rsa применяется чаще всего именно с ПО для организации защищенного соединения по небезопасной сети (про easy-rsa).
Как через easy rsa отозвать сертификат
Работа OpenVPN осуществляется при помощи сертификатов: сервера и клиента.
Запросы на сертификаты могут генерироваться на разных машинах, но подписываются они всегда приватным ключом CA.
CA с OpenVPN могут размещаться на одной машине или на разных. При условии высоких требований к безопасности сервер с CA должен быть отдельной машиной, отключенной от сети.
На сервере с CA сертификат отзывается так:
Затем нужно подтвердить отзыв введя yes
Предварительно следует перейти в ~/ca/ или другую директорию, указанную при создании CA
Чтобы сообщить OpenVPN о том, что сертификат отозван нужен CRL или certificate revocation list.
В результате будет создан файл crl.pem, он перемещается на съемном носителе (в идеале) или при помощи scp на сервер OpenVPN в /etc/openvpn/
В /etc/openvpn/server.conf добавляется опция, которая будет сообщать о необходимости проверять наличие CRL.
echo ‘crl-verify crl.pem’ >> /etc/openvpn/server.conf
Перезапускаем инстанс OpenVPN сервера
systemctl restart openvpn@server
С другими клиентами процесс можно повторять перезаписывая файл crl.pem