Установка OpenVPN с двухуровневой иерархии ЦС
Проблема заключается в следующем: Надо создать два центра сертификации (RootCA и SubCA) и настроить настроить OpenVPN с подписанными сертификатами в ЦС. Я опишу шаги, которые я выполнил, но зашел в тупик, я что-то упускаю, но не вижу что. Берем три сервера (debian 9) называем их RootCA, SubCA, OpenVPNsrv. На всех трех серверах скачиваем easyrsa и распаковываем архивы. На третьем сервере OpenVPNsrv устанавливаем openvpn. Далее по командам.
wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz
tar xvf EasyRSA-3.0.4.tgz
cd ~/EasyRSA-3.0.4/
Данные действия выполняем на всех машинах.
cp vars.example vars
На RootCA и SubCA редактируем данный файл находим необходимый блок, раскомментируем его и пропишем свои значения:
set_var EASYRSA_REQ_COUNTRY «PB»
set_var EASYRSA_REQ_PROVINCE «Minsk»
set_var EASYRSA_REQ_CITY «Minsk»
set_var EASYRSA_REQ_ORG «company»
set_var EASYRSA_REQ_EMAIL «me@example.com»
set_var EASYRSA_REQ_OU «IT»
Так же меняем значение сроков действия сертификатов. На сервере RootCA:
set_var EASYRSA_CA_EXPIRE 3650
set_var EASYRSA_CERT_EXPIRE 1825
На SubCA:
set_var EASYRSA_CA_EXPIRE 1825
set_var EASYRSA_CERT_EXPIRE 365
Далее на RootCA:
./easyrsa init-pki
./easyrsa build-ca nopass
На SubCA:
./easyrsa init-pki
./easyrsa build-ca subca nopass
Передаем файл ca.req серверу RootCA, импортируем, подписываем и возвращаем обратно на SubCA:
./easyrsa import-req ca.req ca
./easyrsa sign-req ca ca
Далее на сервере OpenVPNsrv создаем необходимые сертификаты (запросы) для работы OpenVPN:
./easyrsa gen-req servername nopass
./easyrsa gen-req username nopass
./easyrsa gen-dh
sudo openvpn –genkey –secret ta.key
Подписываю сертификаты на SubCA:
./easyrsa import-req /tmp/servername.req servername
./easyrsa sign-req server servername
./easyrsa import-req /tmp/username.req username
./easyrsa sign-req client username
Все ключи раскладываю в нужные места: для сервера в /etc/openvpn/ :
server.conf
ta.key
ca.crt (SubCA.crt)
server.crt
server.key
dh.pem
Для пользователя генерирую файл user.ovpn, куда добавляю:
ca.crt (SubCA.crt)
user.key
user.crt
ta.key
Запускаю openvpn:
systemctl start openvpn@server
Сервер стартует и работает. Но когда подключаюсь клиентом, но мне выдает ошибку аутентификации.
Но если делаю все тоже самое, но не использую SubCA, то все работает.
Что я упускаю?