policy в файле /var/lib/ssl/openssl.cnf для возможности подписывать любые сертификаты:
policy = policy_anything
#mkdir -p /root/CA/demoCA#cd /root/CA#mkdir -p ./demoCA/newcerts
# touch ./demoCA/index.txt
# echo '01' > ./demoCA/serial
# echo '01' > ./demoCA/crlnumber
ca-root.crt и закрытый ключ ca-root.key, которыми будут заверяться/подписываться ключи и сертификаты клиентов, с помощью следующей команды:
# openssl req -new -x509 -keyout ca-root.key -out ca-root.crt
Ввести пароль для закрытого ключа и ответить на запросы о владельце ключа.
# openssl req -new -nodes -keyout server.key -out server.csr
ca-root.crt и ключом ca-root.key:
# openssl ca -cert ca-root.crt -keyfile ca-root.key -days 3650 -in server.csr -out server.crt
# openssl req -new -nodes -keyout client.key -out client.csr
# openssl ca -cert ca-root.crt -keyfile ca-root.key -days 365 -in client.csr -out client.crt
# openssl dhparam -out server.dh 2048
ca-root.key — используется только для подписи сертификатов (рекомендуется хранить его на отдельном от OpenVPN-сервера компьютере);
ca-root.crt, server.crt, server.dh, server.key — для сервера OpenVPN;
ca-root.crt, client.crt, client.key — для клиента OpenVPN.
ca-root.crt, новый_сертификат.crt, новый_ключ.key.
# openssl ca -cert ca-root.crt -keyfile ca-root.key -gencrl -out crl.pem
# openssl ca -cert ca-root.crt -keyfile ca-root.key -revoke <сертификат>.crt
# openssl ca -cert ca-root.crt -keyfile ca-root.key -gencrl -out crl.pem
# openssl crl -noout -text -in crl.pem
crl.pem в каталог /var/lib/openvpn.
Примечание
crl-verify /var/lib/openvpn/crl.pemПри включённой проверке CRL сертификаты всех подключающихся клиентов будут проверяться по списку отозванных сертификатов, и любое положительное совпадение приведёт к разрыву соединения.