Вроде получилось. осталось в конфиг сервера /etc/net/ifaces/tunX/ovpnoptions добавить
строчку: crl-verify /путь\ к файлу\ отозванных\ лицензий/crl.pem
Ну наконец сам проверил. В конфиге OpenVPN сервера нужно указать
crl-verify crl.pem а файл разместить в каталоге /var/lib/openvpn, иначе тунель не поднимется.
Вот еще одна справка для создания ключей к openvpn серверу: (проверил на AltLinux p7 systemd)
за основу взял "самоподписанный" ман )) http://forum.ubuntu.ru/index.php?topic=182135.0Открываем файл
/var/lib/ssl/openssl.cnf и меняем значение параметра policy на:
policy = policy_anythingЭто для того, чтобы можно было подписывать любые сертификаты. После чего создаем следующие папки и файлы (я все делал в каталоге /root/CA):
mkdir -p ./demoCA/newcerts
touch ./demoCA/index.txt
echo '01' > ./demoCA/serial
echo '01' > ./demoCA/crlnumber(без этого OpenSSL будет сильно ругаться!!! ответ кроется в файле /var/lib/ssl/openssl.cnf ).
Создадим самоподписанный сертификат и закрытый ключ, которыми мы будем заверять ключи и сертификаты клиентов, желающих подключиться к нашему серверу. Я не стал использовать скрипты, поставляемые в комплекте с OpenVPN, потому что хотел сам разобраться что к чему и как работает.
Делается это с помощью консольной утилиты:
openssl req -new -x509 -keyout my-ca.pem -out my-ca.crtПодробнее:
req - запрос на создание сертификата,
-x509 - создать самоподписанный сертификат стандарта X.509 (в Википедию, если интересно),
-keyout - записать закрытый ключ в файл,
-out - записать сертификат в файл. В процессе создания, первым делом, нам предложат ввести пароль для закрытого ключа
(крайне важно). Придумываем пароль, вводим, подтверждаем. Далее, будет задано несколько вопросов о том, кто мы такие. Вводим международное обозначение страны, например
RU, UA, CN, далее указываем регион, город/село/деревню, название нашей организации, свои ФИО, адрес электронной почты. Все. Наш корневой самоподписанный сертификат готов к употреблению.Далее, нам потребуется создать пару "ключ-сертификат" для сервера и каждого клиента, желающего подключиться к нашему серверу.
Создание ключа и запроса на подпись для сервера:
openssl req -new -nodes -keyout server.pem -out server.crsИ подписываем запрос на сертификат своим самоподписанным:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 3650 -in server.crs -out server.crt-cert, корневой сертификат удостоверяющего центра
-keyfile, секретный ключ удостоверяющего центра
Теперь генерируем запрос на сертификат для каждого пользователя:
openssl req -new -nodes -keyout user_1.pem -out user_1.crsИ подписываем запрос на сертификат своим самоподписанным:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 365 -in user_1.crs -out user_1.crt-nodes - означает, что шифровать закрытый ключ не нужно (иначе при каждом запуске туннеля надо будет вводить пароль на ключ). Так же вводим описание для владельца ключа, как и ранее.
Отвечаем два раза положительным "игреком" (y), в итоге, получаем связку "ключ-сертификат" для пользователя user_1.Если пользователей много, то можно автоматизировать процесс, задействовав скрипты из комплекта OpenVPN.
Последние действие - создание параметров Диффи-Хеллмана (исключительно для сервера):
openssl gendh -out server.dh 2048В общем-то, с криптографией больше возиться не придется. Файлы запросов на сертификаты можно удалить:
rm *.crsСоздание списка отзыва сертификатовДля создания списка отзыва сертификатов необходимо выполнить следующую команду
openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out crl.pemотозвать серификат user_1.crt:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -revoke -out crl.pem user_1.crtобновить список:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out crl.pemпросмотр crl.pem:
openssl crl -noout -text -in crl.pemДля AltLinux файл
crl.pem поместить в каталог
/var/lib/openvpnPS. Как все сложно без альтовской вебки (хотя кому как). Через месяц все забуду и опять буду тыкаться в свой мануал. Надеюсь все-таки центр сертификации допилят.