Шаг 3 - Создание сертификата сервера, ключа и файлов шифрования
Теперь, когда у вас есть готовый ЦС, вы можете сгенерировать закрытый ключ и запрос сертификата со своего сервера, а затем передать запрос в свой ЦС для подписания, создав требуемый сертификат. Вы также можете создавать дополнительные файлы, используемые в процессе шифрования.
Начните с перехода в каталог EasyRSA на вашем сервере OpenVPN :
cd EasyRSA-3.0.8/
Оттуда запустите easyrsaсценарий с init-pkiопцией. Хотя вы уже запускали эту команду на машине CA, необходимо запустить ее здесь, потому что ваш сервер и CA будут иметь отдельные каталоги PKI:
./easyrsa init-pki
Затем вызовите easyrsaсценарий еще раз, на этот раз с gen-reqпараметром, за которым следует общее имя машины. Опять же, это может быть что угодно, но может быть полезно сделать что-то описательное. В этом руководстве обычным именем сервера OpenVPN будет просто «сервер». Не забудьте также включить эту nopassопцию. В противном случае файл запроса будет защищен паролем, что в дальнейшем может привести к проблемам с разрешениями:
Примечание . Если вы выберете здесь имя, отличное от «server», вам придется изменить некоторые из приведенных ниже инструкций. Например, при копировании сгенерированных файлов в /etc/openvpnкаталог вам нужно будет подставить правильные имена. Вы также должны изменить /etc/openvpn/server.confфайл позже , чтобы указать на правильный .crtи .keyфайлы.
./easyrsa gen-req server nopass
Это создаст закрытый ключ для сервера и файл запроса сертификата с именем server.req. Скопируйте ключ сервера в /etc/openvpn/каталог:
sudo cp ~/EasyRSA-3.0.8/pki/private/server.key /etc/openvpn/
Используя безопасный метод (например, SCP в нашем примере ниже), перенесите server.reqфайл на свой компьютер CA:
scp ~/EasyRSA-3.0.8/pki/reqs/server.req sammy@your_CA_ip:/tmp
Затем на вашем компьютере CA перейдите в каталог EasyRSA:
cd EasyRSA-3.0.8/
easyrsaСнова используя сценарий, импортируйте server.reqфайл, следуя пути к файлу с его общим именем:
./easyrsa import-req /tmp/server.req server
Затем подпишите запрос, запустив easyrsaсценарий с sign-reqпараметром, за которым следует тип запроса и общее имя. Тип запроса может быть clientили server, поэтому для запроса сертификата сервера OpenVPN обязательно используйте serverтип запроса:
./easyrsa sign-req server server
В выходных данных вам будет предложено подтвердить, что запрос исходит из надежного источника. Введите, yesзатем нажмите, ENTERчтобы подтвердить это:
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
Если вы зашифровали свой ключ CA, на этом этапе вам будет предложено ввести пароль.
Затем перенесите подписанный сертификат обратно на свой VPN-сервер безопасным способом:
scp pki/issued/server.crt sammy@your_server_ip:/tmp
Перед выходом из системы CA также перенесите ca.crtфайл на свой сервер:
scp pki/ca.crt sammy@your_server_ip:/tmp
Затем войдите в свой сервер OpenVPN и скопировать server.crtи ca.crtфайлы в /etc/openvpn/каталоге:
sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/
Затем перейдите в свой каталог EasyRSA:
cd EasyRSA-3.0.8/
Оттуда создайте сильный ключ Диффи-Хеллмана для использования во время обмена ключами, набрав:
./easyrsa gen-dh
Это может занять несколько минут. Как только это произойдет, сгенерируйте подпись HMAC, чтобы усилить возможности проверки целостности TLS сервера:
sudo openvpn --genkey --secret ta.key
Когда команда завершится, скопируйте два новых файла в свой /etc/openvpn/каталог:
sudo cp ~/EasyRSA-3.0.8/ta.key /etc/openvpn/
sudo cp ~/EasyRSA-3.0.8/pki/dh.pem /etc/openvpn/
После этого были созданы все файлы сертификатов и ключей, необходимые вашему серверу. Вы готовы создать соответствующие сертификаты и ключи, которые ваш клиентский компьютер будет использовать для доступа к вашему серверу OpenVPN.
Источник: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-debian-9