Шаг 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