Центр Сертификации (ЦС)

Центр сертификации необходим для работы 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

Вывод должен быть таким:

После заполнения этого раздела у вас есть каталог, содержащий все файлы, необходимые для создания центра сертификации. В следующем разделе вы создадите закрытый ключ и открытый сертификат для своего ЦС.

Шаг 3 - Создание центра сертификации

Прежде чем вы сможете создать закрытый ключ и сертификат вашего ЦС, вам нужно создать и заполнить файл, который называется varsс некоторыми значениями по умолчанию. Сначала вы попадете cdв easy-rsaкаталог, затем создадите и отредактируете varsфайл с помощью nanoили предпочитаемого вами текстового редактора:

cd ~/easy-rsa

nano vars

Как только файл открыт, вставьте следующие строки и отредактируйте каждое значение, чтобы отразить информацию о вашей организации. Здесь важно убедиться, что вы не оставляете пустыми значения:

Когда вы закончите, сохраните и закройте файл. Если вы используете nano, вы можете сделать это, нажав CTRL+X, затем Yи ENTERдля подтверждения. Теперь вы готовы построить свой CA.

Чтобы создать корневую пару открытого и закрытого ключей для вашего центра сертификации, ./easy-rsaснова введите команду, на этот раз с build-caпараметром:

./easyrsa build-ca

В выводе вы увидите несколько строк о версии OpenSSL, и вам будет предложено ввести ключевую фразу для вашей пары ключей. Обязательно выберите надежную фразу-пароль и запишите ее в безопасном месте. Вам потребуется вводить парольную фразу в любое время, когда вам нужно взаимодействовать с вашим ЦС, например, чтобы подписать или отозвать сертификат.

Вас также попросят подтвердить Общее имя (CN) для вашего CA. CN - это имя, используемое для обозначения этого компьютера в контексте центра сертификации. Вы можете ввести любую строку символов для общего имени ЦС, но для простоты нажмите клавишу ВВОД, чтобы принять имя по умолчанию.

Примечание. Если вы не хотите, чтобы пароль запрашивался при каждом взаимодействии с вашим ЦС, вы можете запустить 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

В вашем терминале будет вывод, похожий на следующий:

Скопируйте все, включая -----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?