Центр Сертификации (ЦС)
Центр сертификации необходим для работы OpenVPN
Last updated
Was this helpful?
Центр сертификации необходим для работы OpenVPN
Last updated
Was this helpful?
Чтобы настроить свой собственный VPN сервер, в первую очередь нам необходимо иметь свой собственный сервер, который может быть, как локальным так и облачным. Я настраивал на облачном сервере, который покупал на . Так же имеет смысл уточнить, что нередко бывает так, что центр сертификации располагается на отдельном сервере, а сам VPN на другом, но в моем случае, и ЦС и VPN находятся на одном облачном сервере.
Для начала я зашел на сервер ssh root@you_server_ip
и на сервере я создал второго пользователя adduser alex
, после чего выдал необходимые права usermod -aG sudo alex
, затем как описано в моей части по " подлкючение по SSH " и настроил подключение по SSH пользователю alex. После чего из под root я залогинился в пользователя su - alex
и ввел пароль.
Первая задача в этом руководстве - установить easy-rsa
набор сценариев на вашем CA Server. easy-rsa
является инструментом управления центром сертификации, который вы будете использовать для создания закрытого ключа и открытого корневого сертификата, который вы затем будете использовать для подписи запросов от клиентов и серверов, которые будут полагаться на ваш ЦС.
Войдите на сервер CA как пользователь alex, не являющийся пользователем root, который вы создали на начальных этапах установки, и выполните следующие действия:
sudo apt update
sudo apt install openvpn easy-rsa
Вам будет предложено загрузить пакет и установить его. Нажмите, y
чтобы подтвердить, что вы хотите установить пакет.
Теперь, когда вы установили 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
Вывод должен быть таким:
После заполнения этого раздела у вас есть каталог, содержащий все файлы, необходимые для создания центра сертификации. В следующем разделе вы создадите закрытый ключ и открытый сертификат для своего ЦС.
Прежде чем вы сможете создать закрытый ключ и сертификат вашего ЦС, вам нужно создать и заполнить файл, который называется 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.key
это закрытый ключ, который CA использует для подписи сертификатов для серверов и клиентов. Если злоумышленник получит доступ к вашему СА и, в свою очередь, к вашему ca.key
файлу, вам нужно будет уничтожить ваш СА. Вот почему ваш ca.key
файл должен находиться только на вашем компьютере CA, и в идеале ваш компьютер CA должен оставаться в автономном режиме, если вы не подписываете запросы на сертификат в качестве дополнительной меры безопасности.
После этого ваш центр сертификации будет готов и будет использоваться для подписи запросов на сертификаты и для отзыва сертификатов.
Теперь ваш ЦС настроен и готов выступать в качестве корня доверия для любых систем, которые вы хотите настроить для его использования. Вы можете добавить сертификат 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.crt
файл открытого сертификата CA. Пользователи, серверы и клиенты будут использовать этот сертификат для проверки того, что они являются частью одной сети доверия. Каждый пользователь и сервер, который использует ваш CA, должен иметь копию этого файла. Все стороны будут полагаться на публичный сертификат, чтобы гарантировать, что кто-то не выдает себя за систему и не совершает .
Примечание. Если вы используете свой CA с веб-серверами и используете Firefox в качестве браузера, вам необходимо импортировать публичный ca.crt
сертификат непосредственно в Firefox. Firefox не использует хранилище сертификатов локальной операционной системы. Для получения подробной информации о том, как добавить сертификат вашего CA в Firefox, смотрите эту статью поддержки от Mozilla по .
Если вы используете свой ЦС для интеграции со средой Windows или настольными компьютерами, ознакомьтесь с документацией по certutil.exe
.
Про отзыв сертификатов можно почитать тут: