Работа с СА в CentOS 7
Установка вспомогательных скриптов
Для упрощения создания сертификатов воспользуемся набором скриптов Easy-RSA
Подключаем epel репозиторий:
yum -y install epel-release
yum -y install easy-rsa
Создание центра сертификации
Копируем скрипты для работы с сертификатами и ключами:
cd /etc/openvpn
cp -r /usr/share/easy-rsa/2.0/ ./CA
cd CA
Задаем параметры по умолчанию для сертификатов, для этого в файле vars определим соответствующие переменные.
Определяем параметры по умолчанию в файле vars:
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Kamchatka Krai"
export KEY_CITY="Svetlyy"
export KEY_ORG="Granit"
export KEY_EMAIL="Direhtor@RogaKopita.net""
export KEY_OU="Left kopito"
Задаем параметры для openssl:
ln -s openssl-1.0.0.cnf openssl.cnf
Загружаем переменные определенные из vars в окружение:
source ./vars
Создаем удостоверяющий центр CA:
./build-ca
Создание ключей для сервера и клиентов
Сервер
Генерируем и подписываем ключ сервера:
./build-key-server VPN_SRV_KEY
При этом отвечаем утвердительно на вопрос о подписи ключа и добавления его в базу.
Создаем ключ Диффи-Хеллмана:
./build-dh
Эта операция потребует некоторого времени.
Cоздаем ключ для tls-аутентификации:
openvpn --genkey --secret keys/ta.key
Клиенты
Генерируем и подписываем ключ(и) клиента(ов):
source ./vars
./build-key CLIENT_NAME
При этом отвечаем утвердительно на вопрос о подписи ключа и добавления его в базу.
Отзыв скомпрометированных ключей клиентов
Если закрытый ключ клиента были скомпрометирован, то есть стал известен третьей стороне, то необходимо его отозвать, чтобы злоумышленник не мог ими воспользоваться для проникновения в закрытую сеть.
Для отзыва ключа клиента нужно выполнить следующие действия:
source ./vars
./revoke-full CLIENT_NAME
cp keys/crl.pem /etc/openvpn/server
Место куда должен быть скопирован файл crl.pem определяется в файле конфигурации сервера, см. соответствующий раздел.
crl.pem - содержит список отозванных сертификатов, поэтому после каждого отзыва сертификата его нужно копировать заново.