Центр Сертификации (ЦС)
Центр сертификации необходим для работы OpenVPN
Предпосылки
Чтобы настроить свой собственный VPN сервер, в первую очередь нам необходимо иметь свой собственный сервер, который может быть, как локальным так и облачным. Я настраивал на облачном сервере, который покупал на https://vscale.io. Так же имеет смысл уточнить, что нередко бывает так, что центр сертификации располагается на отдельном сервере, а сам VPN на другом, но в моем случае, и ЦС и VPN находятся на одном облачном сервере.
Для начала я зашел на сервер ssh root@you_server_ip
и на сервере я создал второго пользователя adduser alex
, после чего выдал необходимые права usermod -aG sudo alex
, затем как описано в моей части по " подлкючение по SSH " и настроил подключение по SSH пользователю alex. После чего из под root я залогинился в пользователя su - alex
и ввел пароль.
Теперь приступим к созданию ЦС.
Шаг 1 - Установка Easy-RSA
Первая задача в этом руководстве - установить easy-rsa
набор сценариев на вашем CA Server. easy-rsa
является инструментом управления центром сертификации, который вы будете использовать для создания закрытого ключа и открытого корневого сертификата, который вы затем будете использовать для подписи запросов от клиентов и серверов, которые будут полагаться на ваш ЦС.
Войдите на сервер CA как пользователь alex, не являющийся пользователем root, который вы создали на начальных этапах установки, и выполните следующие действия:
sudo apt update
sudo apt install openvpn easy-rsa
Вам будет предложено загрузить пакет и установить его. Нажмите, y
чтобы подтвердить, что вы хотите установить пакет.
Шаг 2 - Подготовка каталога инфраструктуры открытых ключей
Теперь, когда вы установили easy-rsa
, пришло время создать инфраструктуру открытого ключа (PKI) на CA Server. Убедитесь, что вы по-прежнему вошли в систему как пользователь без полномочий root, и создайте easy-rsa
каталог. Убедитесь, что вы не используете sudo для запуска любой из следующих команд, поскольку ваш обычный пользователь должен управлять и взаимодействовать с ЦС без повышенных привилегий.
mkdir ~/easy-rsa
Это создаст новый каталог с именем easy-rsa
в вашей домашней папке. Мы будем использовать этот каталог для создания символических ссылок, указывающих на easy-rsa
файлы пакетов, которые мы установили на предыдущем шаге. Эти файлы находятся в /usr/share/easy-rsa
.
Создайте символические ссылки с помощью ln
команды:
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
Примечание. В то время как другие руководства могут указывать, что вы должны скопировать easy-rsa
файлы пакета в каталог PKI, в этом руководстве используется метод символьных ссылок. В результате любые обновления easy-rsa
пакета будут автоматически отражаться в скриптах вашей PKI.
Чтобы ограничить доступ к новому каталогу PKI, убедитесь, что только владелец может получить к нему доступ с помощью chmod
команды:
chmod 700 /home/sammy/easy-rsa
Наконец, инициализируйте PKI внутри easy-rsa
каталога:
cd ~/easy-rsa
./easyrsa init-pki
Вывод должен быть таким:
Outputinit-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/sammy/easy-rsa/pki
После заполнения этого раздела у вас есть каталог, содержащий все файлы, необходимые для создания центра сертификации. В следующем разделе вы создадите закрытый ключ и открытый сертификат для своего ЦС.
Шаг 3 - Создание центра сертификации
Прежде чем вы сможете создать закрытый ключ и сертификат вашего ЦС, вам нужно создать и заполнить файл, который называется vars
с некоторыми значениями по умолчанию. Сначала вы попадете cd
в easy-rsa
каталог, затем создадите и отредактируете vars
файл с помощью nano
или предпочитаемого вами текстового редактора:
cd ~/easy-rsa
nano vars
Как только файл открыт, вставьте следующие строки и отредактируйте каждое значение, чтобы отразить информацию о вашей организации. Здесь важно убедиться, что вы не оставляете пустыми значения:
~/easy-rsa/varsset_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "NewYork"
set_var EASYRSA_REQ_CITY "New York City"
set_var EASYRSA_REQ_ORG "DigitalOcean"
set_var EASYRSA_REQ_EMAIL "admin@example.com"
set_var EASYRSA_REQ_OU "Community"
set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"
Когда вы закончите, сохраните и закройте файл. Если вы используете nano
, вы можете сделать это, нажав CTRL+X
, затем Y
и ENTER
для подтверждения. Теперь вы готовы построить свой CA.
Чтобы создать корневую пару открытого и закрытого ключей для вашего центра сертификации, ./easy-rsa
снова введите команду, на этот раз с build-ca
параметром:
./easyrsa build-ca
В выводе вы увидите несколько строк о версии OpenSSL, и вам будет предложено ввести ключевую фразу для вашей пары ключей. Обязательно выберите надежную фразу-пароль и запишите ее в безопасном месте. Вам потребуется вводить парольную фразу в любое время, когда вам нужно взаимодействовать с вашим ЦС, например, чтобы подписать или отозвать сертификат.
Вас также попросят подтвердить Общее имя (CN) для вашего CA. CN - это имя, используемое для обозначения этого компьютера в контексте центра сертификации. Вы можете ввести любую строку символов для общего имени ЦС, но для простоты нажмите клавишу ВВОД, чтобы принять имя по умолчанию.
Output. . .
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/sammy/easy-rsa/pki/ca.crt
Примечание. Если вы не хотите, чтобы пароль запрашивался при каждом взаимодействии с вашим ЦС, вы можете запустить build-ca
команду с nopass
параметром, например так:
./easyrsa build-ca nopass
Теперь у вас есть два важных файла - ~/easy-rsa/pki/ca.crt
и ~/easy-rsa/pki/private/ca.key
- которые составляют публичные и частные компоненты центра сертификации.
ca.crt
файл открытого сертификата CA. Пользователи, серверы и клиенты будут использовать этот сертификат для проверки того, что они являются частью одной сети доверия. Каждый пользователь и сервер, который использует ваш CA, должен иметь копию этого файла. Все стороны будут полагаться на публичный сертификат, чтобы гарантировать, что кто-то не выдает себя за систему и не совершает атаку «человек посередине» .ca.key
это закрытый ключ, который CA использует для подписи сертификатов для серверов и клиентов. Если злоумышленник получит доступ к вашему СА и, в свою очередь, к вашемуca.key
файлу, вам нужно будет уничтожить ваш СА. Вот почему вашca.key
файл должен находиться только на вашем компьютере CA, и в идеале ваш компьютер CA должен оставаться в автономном режиме, если вы не подписываете запросы на сертификат в качестве дополнительной меры безопасности.
После этого ваш центр сертификации будет готов и будет использоваться для подписи запросов на сертификаты и для отзыва сертификатов.
Шаг 4 - Распространение публичного сертификата вашего центра сертификации
Теперь ваш ЦС настроен и готов выступать в качестве корня доверия для любых систем, которые вы хотите настроить для его использования. Вы можете добавить сертификат CA на свои серверы OpenVPN, веб-серверы, почтовые серверы и т. Д. Любой пользователь или сервер, которому необходимо проверить личность другого пользователя или сервера в вашей сети, должен иметь копию ca.crt
файла, импортированную в хранилище сертификатов своей операционной системы.
Чтобы импортировать общедоступный сертификат CA во вторую систему Linux, такую как другой сервер или локальный компьютер, сначала получите копию ca.crt
файла с вашего сервера CA. Вы можете использовать cat
команду для вывода его в терминал, а затем скопировать и вставить его в файл на втором компьютере, который импортирует сертификат. Вы также можете использовать такие инструменты, как scp
, rsync
для передачи файла между системами. Однако nano
на этом шаге мы будем использовать копирование и вставку, поскольку оно будет работать во всех системах.
Как пользователь без полномочий root на CA Server, выполните следующую команду:
cat ~/easy-rsa/pki/ca.crt
В вашем терминале будет вывод, похожий на следующий:
Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----
Скопируйте все, включая -----BEGIN CERTIFICATE-----
и -----END CERTIFICATE-----
строки и тире.
На вашей второй системе Linux используйте nano
или предпочитаемый вами текстовый редактор, чтобы открыть файл с именем /tmp/ca.crt
:
nano /tmp/ca.crt
Вставьте содержимое, которое вы только что скопировали с CA Server в редактор. Когда вы закончите, сохраните и закройте файл. Если вы используете nano
, вы можете сделать это, нажав CTRL+X
, затем Y
и ENTER
для подтверждения.
Теперь, когда у вас есть копия ca.crt
файла во второй системе Linux, пришло время импортировать сертификат в хранилище сертификатов операционной системы.
В системах на основе Ubuntu и Debian выполните следующие команды от имени пользователя без полномочий root для импорта сертификата:Производные дистрибутивы Ubuntu и Debian
sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Чтобы импортировать сертификат CA Server в системе на основе CentOS, Fedora или RedHat, скопируйте и вставьте содержимое файла в систему, как в предыдущем примере, в файл с именем /tmp/ca.crt
. Далее вы скопируете сертификат в /etc/pki/ca-trust/source/anchors/
, а затем выполните update-ca-trust
команду.CentOS, Fedora, RedHat дистрибутивы
sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
Теперь ваша вторая система Linux будет доверять любому сертификату, подписанному сервером CA. В нашем случае это будет один и тот же сервер!!
Примечание. Если вы используете свой CA с веб-серверами и используете Firefox в качестве браузера, вам необходимо импортировать публичный ca.crt
сертификат непосредственно в Firefox. Firefox не использует хранилище сертификатов локальной операционной системы. Для получения подробной информации о том, как добавить сертификат вашего CA в Firefox, смотрите эту статью поддержки от Mozilla по настройке центров сертификации (CA) в Firefox .
Если вы используете свой ЦС для интеграции со средой Windows или настольными компьютерами, ознакомьтесь с документацией по certutil.exe
установке сертификата ЦС .
Про отзыв сертификатов можно почитать тут: https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04#step-1-%E2%80%94-installing-easy-rsa
Last updated
Was this helpful?