Подготовка сертификата и ключа для сервера OpenVPN

Помимо openssl.cnf и openvpn.conf в каталоге /etc/openvpn/ нам потребуются файлы, перечисленные в табл. 3.

 

 

Таблица 3. Файлы для сервера OpenVPN.

 

Файл Описание
dh.pem Файл Диффи-Хелмана для защиты трафика от расшифровки
ca.crt Сертификат удостоверяющего центра CA
server.crt Сертификат сервера OpenVPN
server.key Приватный ключ сервера OpenVPN, секретный
crl.pem Список отзыва сертификатов CRL
ta.key Ключ HMAC для дополнительной защиты от DoS-атак и флуда

 

Прежде всегосоздаем приватный ключ и файл запроса на сертификат для сервера OpenVPN, а также получаем по созданному запросу в удостоверяющем центре CA подписанный сертификат. В результате у нас появятся файлы server.crt и server.key. Далее займемся остальными файлами, перечисленными в табл. 3.

Чтобы создать для сервера OpenVPN запрос на сертификат и приватный ключ, потребуется установить на сервер OpenVPN программу Easy-RSA.

Установку Easy-RSA, генерацию приватного ключа сервера OpenVPN и запроса на сертификат делаем от имени пользователя vpnoperator, не имеющего привилегий администратора. Добавим этого пользователя перед началом работ:

# adduservpnoperator

Прежде всего, устанавливаем на сервере OpenVPN утилиту Easy-RSA и запускаем инициализацию инфраструктуры публичных ключей PKI:

$ cd /home/vpnoperator

$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

$ unzip master.zip

$ cd /home/vpnoperator/easy-rsa-master/easyrsa3

$./easyrsainit-pki

После успешной инициализации PKI в консоли появится сообщение:

init-pki complete; you may now create a CA or requests.

Your newly created PKI dir is: /home/vpnoperator/easy-rsa-master/easyrsa3/pki

Так как сервер OpenVPN не будет играть роль удостоверяющего центра, то после инициализации PKI создавать CA командой build-ca не будем.

Инфраструктура PKI будет создана в каталоге /home/vpnoperator/easy-rsa-master/easyrsa3/pki.

На следующем этапе получаем запрос на сертификат и приватный ключ сервера OpenVPN:

$./easyrsagen-reqserver

Этой командой будет создан файл запроса server.req и приватного ключа server.key. В процессе генерации будет запрошен пароль, а также имя CommonName для сервера OpenVPN:

Generating a 2048 bit RSA private key

...............................................................................................................+++

....................................+++

writing new private key to '/home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/server.key'

Enter PEM pass phrase:******

Verifying - Enter PEM pass phrase:******

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Common Name (eg: your user, host, or server name) [server]: vpn-server

Keypair and certificate request completed. Your files are:

req: /home/vpnoperator/easy-rsa-master/easyrsa3/pki/reqs/server.req

key: /home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/server.key

Первый из этих файлов нужно передать на сервер удостоверяющего центра CA, он не секретный. Второй файл — секретный, и он не должен покидать пределы сервера OpenVPN.

Заметим, что при генерации приватного ключа был запрошен пароль. Этот пароль обеспечивает защиту, если приватный ключ будет скомпрометирован (украден злоумышленником). Пароль приватного ключа OpenVPN будет запрашиваться с консоли каждый раз при загрузке сервера и запуске OpenVPN.

Итак, создан приватный ключ сервера OpenVPN и запрос на сертификат.

После удачного импорта запроса увидим следующее сообщение:

The request has been successfully imported with a short name of: vpn-server

You may now use this name to perform signing operations on this request.

Если ошибок нет, подписываем запрос на получение сертификата:

./easyrsa sign-req server vpn-server

В процессе создания подписанного сертификата будет запрошено подтверждение, а также пароль приватного ключа удостоверяющего центра CA:

You are about to sign the following certificate.

Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 3650 days:

subject=

commonName = server

Type the word 'yes' to continue, or any other input to abort.

Confirm request details: yes

Using configuration from /home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf

Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key:******

Check that the request matches the signature

Signature ok

The Subject's Distinguished Name is as follows

commonName:ASN.1 12:'server'

Certificate is to be certified until Jun 26 15:48:25 2024 GMT (3650 days)

Write out database with 1 new entries

Data Base Updated

Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt

Теперь сертификат получен, и он находится на сервере удостоверяющего центра в файле home/ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt. Этот файл нужно передать на сервер OpenVPN.

Скопируем через USB флеш-диск файл сертификата /ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt с сервера удостоверяющего центра в файл на сервере OpenVPN /home/vpnoperator/vpn-server.crt.

Скопируемфайлыca.crtсертификатаCA, списокотзывасертификатовcrl.pemисертификатvpn-server.crtсервераOpenVPNвкаталог /etc/openvpn.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: