Стандартный вариант настройки OpenVPN это использование easy-rsa
Администратору системы должны быть доступны все файлы, в том числе и Клиентские - это нужно для отзыва клиентского сертификата
mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
export KEY_COUNTRY="RU" export KEY_PROVINCE="Province" export KEY_CITY="City" export KEY_ORG="Firma" export KEY_EMAIL="info@domain.ru"
chmod +x vars
[ ca ] default_ca = CA_default [ CA_default ] dir = /etc/openvpn/easy-rsa/keys crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/certs certificate = $dir/ca.crt serial = $dir/serial crl = $dir/crl.pem private_key = $dir/ca.key RANDFILE = $dir/.rand default_days = 3650 default_crl_days = 30 default_md = md5 unique_subject = yes policy = policy_any x509_extensions = user_extensions [ policy_any ] organizationName = match organizationalUnitName = optional commonName = supplied [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name x509_extensions = CA_extensions [ req_distinguished_name ] organizationName = Organization Name (must match CA) organizationName_default = Company organizationalUnitName = Location Name commonName = Common User or Org Name commonName_max = 64 [ user_extensions ] basicConstraints = CA:FALSE [ CA_extensions ] basicConstraints = CA:TRUE default_days = 3650 [ server ] basicConstraints = CA:FALSE nsCertType = server
cd /etc/openvpn/easy-rsa source ./vars ./clean-all ./build-ca
cd /etc/openvpn/easy-rsa source ./vars ./build-key-server server
cd /etc/openvpn/easy-rsa source ./vars ./build-dh
openvpn --genkey --secret keys/ta.key
#!/bin/sh cd /etc/openvpn/easy-rsa source ./vars openssl ca -config openvpn.cnf -gencrl -out keys/crl.pem
mkdir /etc/openvpn/keys cd /etc/openvpn/easy-rsa/keys cp server.crt server.key ca.crt dh1024.pem dh2048.pem crl.pem ta.key /etc/openvpn/keys
#!/bin/bash cd /etc/openvpn/easy-rsa source ./vars ./build-key ИМЯ_КЛИЕНТА
#!/bin/sh cd /etc/openvpn/easy-rsa source ./vars ./list-crl
Отзыв (аннулирование) клиентского сертификата, создание CRL файла
Для отзыва выполняем:
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0 . ./vars ./revoke-full ИМЯ_КЛИЕНТА
Копируем crl.pem
на сервер и добавляем в файл openvpn.conf
сроку crl-verify crl.pem
Если файл crl.pem
отсутствует, а директива crl-verify crl.pem
в openvpn.conf
присутствует, то сервер не пустит ни одного клиента !