Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Развертывание Центра Сертификации (Easy-RSA 3) для корпоративной PKI и VPN

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Истечение срока действия корневого сертификата CA или клиентских сертификатов, приводящее к остановке VPN-шлюзов.
  • Ошибки валидации: VERIFY ERROR: depth=0, error=certificate has expired или self-signed certificate in chain.
  • Невозможность оперативно отозвать скомпрометированный сертификат уволенного сотрудника.
  • Хранение приватного ключа корневого CA на публичном интернет-сервере (угроза компрометации всей сети).

1. Изоляция инфраструктуры открытых ключей (PKI)

Корневой удостоверяющий центр (Root CA) должен быть развернут на изолированном от сети хосте (Offline CA). На рабочий VPN-сервер копируются только публичный сертификат ca.crt, список отозванных сертификатов crl.pem и сгенерированные серверные ключи.

2. Инициализация PKI и создание Корневого CA

# Установка утилиты
apt-get install -y easy-rsa
make-cadir /opt/vpn-ca
cd /opt/vpn-ca

# 1. Настройка переменных в файле vars
cat << 'EOF' > vars
set_var EASYRSA_ALGO          "ec"
set_var EASYRSA_CURVE         "prime256v1"
set_var EASYRSA_CA_EXPIRE     3650
set_var EASYRSA_CERT_EXPIRE   825
set_var EASYRSA_CRL_DAYS      180
EOF

# 2. Инициализация чистого PKI хранилища
./easyrsa init-pki

# 3. Выпуск корневого сертификата CA (с запросом пароля)
./easyrsa build-ca

3. Выпуск сертификата для VPN-сервера

# Генерация запроса и ключа без пароля (nopass)
./easyrsa gen-req vpn-server-hq nopass

# Подпись серверного сертификата
./easyrsa sign-req server vpn-server-hq

4. Выпуск клиентского сертификата пользователя

# Генерация запроса для сотрудника
./easyrsa gen-req ivan_petrov nopass

# Подпись сертификата с ролью 'client'
./easyrsa sign-req client ivan_petrov

5. Процедура отзыва сертификата (Revocation) и генерация CRL

# 1. Отзыв скомпрометированного сертификата
./easyrsa revoke ivan_petrov

# 2. Генерация обновленного списка отзыва (Certificate Revocation List)
./easyrsa gen-crl

# 3. Копирование crl.pem на рабочий VPN сервер
scp /opt/vpn-ca/pki/crl.pem root@vpn.corp.ru:/etc/openvpn/crl.pem

6. Подключение проверки CRL в OpenVPN

# В server.conf добавьте директиву:
crl-verify /etc/openvpn/crl.pem
Практический опыт инженера: Никогда не храните приватный ключ ca.key на самом VPN-сервере. Держите его на защищенной рабочей станции администратора или внешнем зашифрованном носителе.

Частые вопросы (FAQ)

Почему рекомендуется использовать криптографию на эллиптических кривых (ECDSA)?

Сертификаты на базе эллиптических кривых (например, prime256v1) обеспечивают ту же криптостойкость, что и RSA 3072-bit, но имеют меньший размер ключа, что в разы ускоряет рукопожатие IKE/TLS и снижает оверхед.

Что произойдет, если истечет срок действия файла crl.pem?

Если срок действия CRL (параметр EASYRSA_CRL_DAYS) истечет, сервер OpenVPN из соображений безопасности начнет отклонять подключения ВСЕХ клиентов с ошибкой 'CRL has expired'.

Как автоматизировать обновление CRL на боевых серверах?

Настройте systemd-таймер или cron, который еженедельно запускает ./easyrsa gen-crl на CA и безопасно синхронизирует файл crl.pem на VPN-шлюзы через rsync/SSH.

Зачем нужны флаги назначения сертификата (server / client)?

Расширение X509 Extended Key Usage строго разграничивает назначение ключей (Server Auth / Client Auth), предотвращая атаку 'человек посередине', если клиент попытается выдать свой ключ за серверный.