Установка и настройка сервера OpenVPN с удостоверяющим центром
Прежде всего мы создадим приватный ключ и файл запроса на сертификат для сервера OpenVPN, а также получим по созданному запросу в удостоверяющем центре CA подписанный сертификат. В результате у нас появятся файлы server.crt и server.key. Далее займемся остальными файлами, перечисленными в табл. 3. Чтобы создать для сервера OpenVPN запрос на сертификат и приватный ключ, нам потребуется установить на сервер OpenVPN программу Easy-RSA, аналогично тому, как мы это делали для удостоверяющего центра CA. Установку Easy-RSA, генерацию приватного ключа сервера OpenVPN и запроса на сертификат мы будем делать от имени пользователя vpnoperator, не имеющего привилегий администратора. Добавьте этого пользователя перед началом работ:
# adduser vpnoperator
Прежде всего, устанавливаем на сервере 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 $ ./easyrsa init-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:
# ./easyrsa gen-req server 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]:vps.adminunix.ru 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
./easyrsa sign-req server vps.adminunix.ru
Note: using Easy-RSA configuration from: ./vars
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 = vps.adminunix.ru
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /home/usersrssh/src/easy-rsa-master/EasyRSA-git-development/openssl-1.0.cnf
Enter pass phrase for /home/usersrssh/src/easy-rsa-master/EasyRSA-git-development/pki/private/ca.key:******
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :PRINTABLE:'vps.adminunix.ru'
Certificate is to be certified until Feb 23 09:10:33 2025 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/usersrssh/src/easy-rsa-master/EasyRSA-git-development/pki/issued/vps.adminunix.ru.crt