Шаг 4 - Создание сертификата клиента и пары ключей
Хотя вы можете сгенерировать закрытый ключ и запрос сертификата на своем клиентском компьютере, а затем отправить его в ЦС для подписи, в этом руководстве описывается процесс создания запроса сертификата на сервере. Преимущество этого заключается в том, что мы можем создать сценарий, который будет автоматически генерировать файлы конфигурации клиента, содержащие все необходимые ключи и сертификаты. Это позволяет избежать передачи ключей, сертификатов и файлов конфигурации клиентам и упрощает процесс присоединения к VPN.
Для этого руководства мы сгенерируем единый ключ клиента и пару сертификатов. Если у вас более одного клиента, вы можете повторить этот процесс для каждого из них. Однако обратите внимание, что вам нужно будет передать уникальное значение имени скрипту для каждого клиента. В этом руководстве первая пара сертификат / ключ обозначается как client1
.
Начните с создания структуры каталогов в домашнем каталоге для хранения сертификата клиента и файлов ключей:
mkdir -p ~/client-configs/keys
Поскольку вы будете хранить пары сертификат / ключ и файлы конфигурации своих клиентов в этом каталоге, вам следует заблокировать его разрешения сейчас в качестве меры безопасности:
chmod -R 700 ~/client-configs
Затем вернитесь в каталог EasyRSA и запустить easyrsa
скрипт с gen-req
и nopass
опций, а также с общим названием для клиента:
cd ~/EasyRSA-3.0.8/
./easyrsa gen-req client1 nopass
Нажмите, ENTER
чтобы подтвердить обычное имя. Затем скопируйте client1.key
файл в /client-configs/keys/
каталог, который вы создали ранее:
cp pki/private/client1.key ~/client-configs/keys/
Затем перенесите client1.req
файл на компьютер CA безопасным способом:
scp pki/reqs/client1.req sammy@your_CA_ip:/tmp
Войдите в свой компьютер CA, перейдите в каталог EasyRSA и импортируйте запрос сертификата:
ssh sammy@ваш ip
cd EasyRSA-3.0.8/
./easyrsa import-req /tmp/client1.req client1
Затем подпишите запрос, как вы это делали для сервера на предыдущем шаге. Но на этот раз обязательно укажите client
тип запроса:
./easyrsa sign-req client client1
В командной строке введите, yes
чтобы подтвердить, что вы собираетесь подписать запрос на сертификат и что он поступил из надежного источника:
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Опять же, если вы зашифровали свой ключ CA, вам будет предложено ввести пароль здесь.
Это создаст файл сертификата клиента с именем client1.crt
. Перенесите этот файл обратно на сервер:
scp pki/issued/client1.crt sammy@your_server_ip:/tmp
Вернитесь по SSH на свой сервер OpenVPN и скопируйте сертификат клиента в /client-configs/keys/
каталог:
cp /tmp/client1.crt ~/client-configs/keys/
Затем скопируйте ca.crt
и ta.key
файлы в /client-configs/keys/
каталог:
sudo cp ~/EasyRSA-3.0.8/ta.key ~/client-configs/keys/
sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/
При этом сертификаты и ключи вашего сервера и клиента были сгенерированы и хранятся в соответствующих каталогах на вашем сервере. Есть еще несколько действий, которые необходимо выполнить с этими файлами, но они будут выполнены позже. А пока вы можете перейти к настройке OpenVPN на своем сервере.
Источник: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-debian-9