Центр сертификации (ЦС) — это служба, отвечающая за выдачу цифровых сертификатов удостоверения личности в Интернете. Хотя публичные ЦС часто используются для подтверждения подлинности сайтов и других общедоступных служб, для закрытых групп и частных служб обычно используются частные ЦС.
Создание частного ЦС позволит вам настраивать, тестировать и запускать программы, требующие шифрованного канала связи между клиентом и сервером. Частный ЦС позволяет выпускать сертификаты для пользователей, серверов или отдельных программ и служб в вашей инфраструктуре.
Существует множество программ для Linux, использующих частные ЦС, в том числе OpenVPN и Puppet. Также вы можете настроить веб-сервер для использования сертификатов, выпущенных частным ЦС, с целью обеспечить соответствие сред разработки и тестирования и производственных сред, где используется служба TLS для шифрования соединений.
Из этого руководства мы узнаем, как настроить частный Центр сертификации на сервере CentOS 8, а также как сгенерировать и подписать сертификат тестирования, используя новый ЦС. Также вы научитесь импортировать публичный сертификат сервера ЦС в хранилище сертификатов операционной системы, чтобы проверять цепочку доверия между ЦС и удаленными серверами или пользователями. Кроме того, вы научитесь отзывать сертификаты и распространять Список отзыва сертификатов, чтобы службы на основе вашего ЦС могли использовать только уполномоченные пользователи и системы.
Для прохождения этого обучающего руководства вам потребуется сервер CentOS 8 с пользователем non-root user с привилегиями sudo
и брандмауэр, настроенный с помощью firewalld
. Для выполнения этих требований можно следовать указаниям руководства Начальная настройка сервера CentOS 8.
В настоящем обучающем руководстве мы будем называть его сервер ЦС.
Сервер ЦС должен представлять собой отдельную систему. Она будет использоваться только для импорта, подписания и отзыва запросов сертификатов. На ней не должны работать никакие другие службы, и в идеале ее следует отключать от сети или полностью отключать в периоды, когда вы активно не работаете с ЦС.
Примечание. Последний раздел этого обучающего руководства необязательный. Из него вы сможете узнать о подписании и отзыве сертификатов. Если вы решите выполнить дополнительные практические шаги, вам потребуется второй сервер под управлением CentOS 8 или локальный компьютер Linux под управлением производного дистрибутива CentOS 8, Fedora или RedHat.
Первая задача этого обучающего руководства заключается в установке набора скриптов easy-rsa
для запуска на сервере ЦС. Мы будем использовать инструмент управления ЦС easy-rsa
для генерирования частного ключа и публичного корневого сертификата, с помощью которых вы будете подписывать запросы клиентов и серверов, использующих ваш ЦС.
Пакет easy-rsa
отсутствует по умолчанию в CentOS 8, так что вам нужно будет активировать репозиторий Extra Packages for Enterprise Linux (EPEL). EPEL управляется Fedora Project и содержит популярные нестандартные пакеты для Fedora, CentOS и других дистрибутивов Linux, использующих формат пакетов RPM. Войдите на сервер ЦС от имени пользователя non-root user с привилегиями sudo, созданного на начальном этапе установки, и запустите следующую команду:
- sudo dnf install epel-release
Вам будет предложено загрузить пакет и установить его. Нажмите y
, чтобы подтвердить установку пакета.
Установите пакет easy-rsa
, снова введя y
в командной строке:
- sudo dnf install easy-rsa
Теперь у вас есть все необходимое для настройки и использования Easy-RSA. На следующем шаге мы создадим инфраструктуру открытых ключей, а затем приступим к созданию Центра сертификации.
Мы установили easy-rsa
и теперь займемся созданием каркаса инфраструктуры открытых ключей (PKI) на сервере ЦС. Убедитесь, что вы вошли в систему как пользователь non-root user, и создайте директорию easy-rsa
. Не используйте sudo для запуска следующих команд, поскольку обычные пользователи должны иметь возможность управления и взаимодействия с ЦС без повышенного уровня прав.
- mkdir ~/easy-rsa
В вашей домашней папке будет создана новая директория с именем easy-rsa
. Мы используем эту директорию для создания символических ссылок, указывающих на файлы пакета easy-rsa
, установленные на предыдущем шаге. Эти файлы находятся в папке /usr/share/easy-rsa/3
на сервере ЦС.
Создайте символические ссылки с помощью команды ln
:
- ln -s /usr/share/easy-rsa/3/* ~/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
После выполнения указаний этого раздела у нас будет директория, содержащая все необходимые файлы для создания Центра сертификации. На следующем шаге мы создадим закрытый ключ и публичный сертификат для ЦС.
Прежде чем создавать закрытый ключ и сертификат ЦС, необходимо создать файл с именем vars
и заполнить его значениями по умолчанию. Используйте команду cd
для перехода в директорию easy-rsa
, а затем создайте и отредактируйте файл vars
с помощью nano
или другого предпочитаемого текстового редактора:
Предоставляемый с CentOS 8 по умолчанию текстовый редактор — vi
. vi
является очень мощным текстовым редактором, но освоить работу с ним неопытным пользователям достаточно сложно. Вы можете установить более удобный для пользователя редактор, например nano
, для облегчения редактирования файлов конфигурации на сервере CentOS 8:
- sudo dnf install nano
Когда вам будет предложено установить nano
, введите y
, чтобы продолжить выполнение установки. Теперь вы готовы к редактированию файла vars
:
- 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"
После завершения редактирования сохраните и закройте файл. Если вы используете nano
, вы можете нажать CTRL+X
, а затем Y
и ENTER
для подтверждения. Теперь вы готовы к созданию ЦС.
Для создания корневой пары открытого и закрытого ключей для Центра сертификации необходимо запустить команду ./easy-rsa
еще раз, но уже с опцией build-ca
:
- ./easyrsa build-ca
Вы увидите несколько строк с указанием версии OpenSSL, а затем вам будет предложено ввести фразу-пароль для пары ключей. Используйте надежную фразу-пароль и запишите ее в безопасном месте. Вам нужно будет вводить фразу-пароль каждый раз, когда вам потребуется взаимодействовать с ЦС, в частности при подписании или отзыве сертификата.
Также вам будет предложено подтвердить обычное имя (CN) вашего ЦС. CN — это имя, которое будет использоваться для данного компьютера в контексте Центра сертификации. Вы можете использовать любую строку символов как обычное имя ЦС, но для простоты нажмите ENTER, чтобы использовать имя по умолчанию.
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.key
— закрытый ключ, который ЦС будет использовать для подписания сертификатов серверов и клиентов. Если злоумышленник получит доступ к ЦС и файлу ca.key
, вам нужно будет уничтожить ЦС. Поэтому файл ca.key
должен храниться только на компьютере ЦС, и для дополнительной безопасности компьютер ЦС следует выключать, когда он не используется для подписания запросов сертификатов.
Мы установили ЦС и готовы использовать его для подписания запросов сертификатов и отзыва сертификатов.
Мы настроили ЦС и можем использовать его в качестве корня доверия для любых систем, которые захотим настроить для этого. Сертификат ЦС можно добавлять на серверы OpenVPN, веб-серверы, почтовые серверы и т. д. Каждый пользователь или сервер, которому потребуется подтвердить подлинность другого пользователя или сервера в вашей сети, должен иметь копию файла ca.crt
, импортированную в хранилище сертификатов операционной системы.
Чтобы импортировать публичный сертификат ЦС во вторую систему Linux, например на сервер или локальный компьютер, нужно предварительно получить копию файла ca.crt
с сервера ЦС. Вы можете использовать команду cat
для ее вывода в терминал, а затем скопировать и вставить ее в файл на втором компьютере, который импортирует сертификат. Также вы можете использовать scp
, rsync
и другие подобные инструменты для передачи файла между системами. Мы используем для копирования и вставки текстовый редактор nano
, поскольку этот вариант подойдет для всех систем.
Запустите следующую команду на сервере ЦС от имени пользователя non-root user:
- cat ~/easy-rsa/pki/ca.crt
На терминале появится примерно следующее:
Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----
Скопируйте все, включая строки -----BEGIN CERTIFICATE-----
и -----END CERTIFICATE-----
и символы дефиса.
Используйте nano
или предпочитаемый текстовый редактор на второй системе Linux, чтобы открыть файл с именем /tmp/ca.crt
:
- nano /tmp/ca.crt
Вставьте в редактор содержимое, скопированное вами из сервера ЦС. После завершения редактирования сохраните и закройте файл. Если вы используете nano
, вы можете нажать CTRL+X
, а затем Y
и ENTER
для подтверждения.
Теперь у нас имеется копия файла ca.crt
на второй системе Linux, и мы можем импортировать сертификат в хранилище сертификатов операционной системы.
В CentOS, Fedora и других производных от RedHat дистрибутивах Linux для импорта сертификата нужно выполнить следующую команду:
- sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
- update-ca-trust
Чтобы импортировать сертификат сервера ЦС в систему на базе Debian или Ubuntu, скопируйте и вставьте содержимое файла в файл /tmp/ca.crt
, как было показано в предыдущем примере. Скопируйте сертификат в директорию /usr/local/share/ca-certificates/
, а затем запустите команду update-ca-certificates
.
- sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
- update-ca-certificates
Теперь вторая система Linux будет доверять любому сертификату, подписанному нашим сервером ЦС.
Примечание. Если вы используете ЦС с веб-серверами и браузер Firefox, вам нужно будет импортировать публичный сертификат ca.crt
в Firefox напрямую. Firefox не использует локальное хранилище сертификатов операционной системы. Подробную информацию о добавлении сертификата ЦС в Firefox можно найти в статье поддержки Mozilla Настройка Центров сертификации (ЦС) в Firefox.
Если вы используете ЦС для интеграции со средой Windows или настольными компьютерами, ознакомьтесь с документацией по использованию certutil.exe
для установки сертификата ЦС.
Если вы используете это обучающее руководство для выполнения предварительных требований другого обучающего руководства или уже знакомы с процессом подписания и отзыва сертификатов, вы можете остановиться здесь. Если вы хотите узнать больше о подписании и отзыве сертификатов, в следующем необязательном разделе вы найдете подробное описание каждого из этих процессов.
Следующие разделы этого обучающего руководства являются необязательными. Если вы выполнили все предыдущие шаги, у вас имеется полностью настроенный и работающий Центр сертификации, который вы сможете использовать для выполнения других обучающих руководств. Вы можете импортировать файл ca.crt
вашего ЦС и проверить сертификаты в вашей сети, которые были подписаны вашим ЦС.
Если вы хотите потренироваться и узнать больше о том, как подписывать запросы сертификатов и отзывать сертификаты, из этих необязательных разделов вы сможете узнать больше о каждом из этих процессов.
Мы настроили ЦС для использования и теперь можем попробовать сгенерировать закрытый ключ и запрос сертификата, чтобы познакомиться с процессом подписания и распространения.
Запрос на подписание сертификата (CSR) состоит из трех частей, а именно открытого ключа, идентификационной информации запрашивающей системы и подписи запроса, создаваемой на основе закрытого ключа запрашивающей системы. Закрытый ключ остается секретным, и его можно будет использовать для шифрования информации, которую сможет расшифровать любой пользователь с подписанным открытым сертификатом.
Следующие шаги будут выполняться на второй системе Linux под управлением CentOS, Fedora или другого производного от RedHat дистрибутива Linux. Это может быть другой удаленный сервер или локальная система Linux, например ноутбук или настольный компьютер. Поскольку по умолчанию easy-rsa
доступна не на всех системах, мы используем инструмент openssl
для создания тренировочного закрытого ключа и сертификата.
openssl
обычно устанавливается по умолчанию в большинстве дистрибутивов Linux, но для уверенности стоит запустить в системе следующую команду:
- sudo dnf install openssl
Когда вам будет предложено установить openssl
, введите y
, чтобы продолжить выполнение установки. Теперь вы готовы создать тренировочный CSR с помощью openssl
.
В первую очередь для создания CSR необходимо сгенерировать закрытый ключ. Чтобы создать закрытый ключ с помощью openssl
, создайте директорию practice-csr
и сгенерируйте ключ в этой директории. Мы будем выполнять этот запрос на фиктивном сервере под названием sammy-server
, в отличие от случая создания сертификата для идентификации пользователя или другого ЦС.
- mkdir ~/practice-csr
- cd ~/practice-csr
- openssl genrsa -out sammy-server.key
OutputGenerating RSA private key, 2048 bit long modulus (2 primes)
. . .
. . .
e is 65537 (0x010001)
Теперь у нас имеется закрытый ключ, с помощью которого можно создать CSR, используя утилиту openssl
. Вам будет предложено заполнить ряд полей, в том числе указать страну, область и город. Вы можете ввести .
, если хотите оставить поле пустым, но для реальных CSR лучше использовать правильные значения при указании своего расположения и организации:
- openssl req -new -key sammy-server.key -out sammy-server.req
Output. . .
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:DigitalOcean
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server's hostname) []:sammy-server
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Если вы хотите, чтобы эти значения добавлялись автоматически при вызове openssl
, а не запрашивались через интерактивный диалог, вы можете передать аргумент -subj
в OpenSSL. Обязательно измените выделенные значения для соответствия вашему расположению, организации и имени сервера:
- openssl req -new -key sammy-server.key -out sammy-server.req -subj \
- /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server
Чтобы проверить содержимое CSR, вы можете прочитать файл запроса с помощью команды openssl
и проверить поля внутри него:
- openssl req -in sammy-server.req -noout -subject
Outputsubject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server
Когда вас устроит тема запроса тренировочного сертификата, скопируйте файл sammy-server.req
на сервер ЦС с помощью scp
:
- scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req
На этом шаге вы сгенерировали запрос подписи сертификата для вымышленного сервера sammy-server
. В реальной ситуации запрос может исходить от веб-сервера разработки, которому требуется сертификат TLS для тестирования, или от сервера OpenVPN, который запрашивает сертификат, чтобы пользователи могли подключиться к VPN. На следующем шаге мы перейдем к подписанию запроса на подписание сертификата с использованием закрытого ключа сервера ЦС.
На предыдущем шаге мы создали запрос тренировочного сертификата и ключ вымышленного сервера. Мы скопировали его в директорию /tmp
на сервере ЦС, моделируя процесс, который мы бы использовали при отправке запросов CSR на подпись реальными клиентами или серверами.
Продолжим рассматривать вымышленный сценарий. Теперь серверу ЦС необходимо импортировать тренировочный сертификат и подписать его. Когда ЦС подтвердит сертификат и отправит ответ серверу, клиенты, доверяющие Центру сертификации, смогут также доверять новому сертификату.
Поскольку мы будем работать внутри инфраструктуры PKI в ЦС, где доступна утилита easy-rsa
, мы будем использовать утилиту easy-rsa
для большего удобства в отличие от использования openssl
, как мы делали в предыдущем примере.
Первым шагом для подписания вымышленного CSR будет импорт запроса сертификата с помощью скрипта easy-rsa
:
- cd ~/easy-rsa
- ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output. . .
The request has been successfully imported with a short name of: sammy-server
You may now use this name to perform signing operations on this request.
Теперь вы можете подписать запрос, запустив скрипт easyrsa
с опцией sign-req
, указав затем тип запроса и общее имя, включаемое в CSR. Запрос может иметь тип client
, server
или ca
. Поскольку мы тренируемся с сертификатом для вымышленного сервера, нужно использовать тип запроса server
:
- ./easyrsa sign-req server sammy-server
В результатах вам будет предложено подтвердить, что запрос поступил из надежного источника. Для подтверждения введите yes
и нажмите ENTER
:
OutputYou 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 = sammy-server
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
. . .
Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt
Если вы зашифровали ключ ЦС, вам будет предложено ввести пароль.
Выполнив эти шаги, мы подписали CSR sammy-server.req
с помощью закрытого ключа сервера ЦС в директории /home/sammy/easy-rsa/pki/private/ca.key
. Полученный файл sammy-server.crt
содержит открытый ключ шифрования тренировочного сервера, а также новую подпись от сервера ЦС. Подпись сообщает всем, кто доверяет ЦС, что они также могут доверять сертификату sammy-server
.
Если бы это был запрос веб-сервера, сервера VPN или другого реального сервера, последним шагом на сервере ЦС стало бы распространение новых файлов sammy-server.crt
и ca.crt
с сервера ЦС на удаленный сервер, отправивший запрос CSR:
- scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
- scp pki/ca.crt sammy@your_server_ip:/tmp
На этом этапе выпущенный сертификат можно было бы использовать с веб-сервером, сервером VPN, инструментом управления конфигурацией, СУБД, системой аутентификации клиентов и т. п.
Иногда сертификат требуется отозвать, чтобы пользователь или сервер не могли его использовать. Например, это может потребоваться в случае кражи ноутбука, взлома веб-сервера, увольнения сотрудника, расторжения договора с подрядчиком и т. д.
Далее кратко описана процедура отзыва сертификата:
./easyrsa revoke client_name
../easyrsa gen-crl
.crl.pem
на сервер или серверы, использующие ваш ЦС, а на этих системах скопируйте этот файл в директорию или директории программ, которые на него ссылаются.С помощью этой процедуры вы можете отозвать любые сертификаты, которые ранее выпустили для вашего сервера. В следующих разделах мы подробно рассмотрим каждый шаг, начиная с команды revoke
.
Для отзыва сертификата перейдите в директорию easy-rsa
на вашем сервере ЦС:
- cd ~/easy-rsa
Затем запустите скрипт easyrsa
с опцией revoke
, указав имя клиента, у которого хотите отозвать сертификат: В соответствии с приведенным выше практическим примером, сертификат имеет обычное имя sammy-server
:
- ./easyrsa revoke sammy-server
Система предложит вам подтвердить отзыв сертификата. Введите yes
:
OutputPlease confirm you wish to revoke the certificate with the following subject:
subject=
commonName = sammy-server
Type the word 'yes' to continue, or any other input to abort.
Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .
Обратите внимание на выделенное значение в строке Revoking Certificate
. Это значение представляет собой уникальный серийный номер отзываемого сертификата. Данное значение потребуется вам, если вы захотите просмотреть список отзыва и убедиться в наличии в нем сертификата, как описано в последнем шаге этого раздела.
После подтверждения действия ЦС выполнит отзыв сертификата. Однако удаленные системы, использующие ЦС, не имеют возможности проверить отзыв сертификатов. Пользователи и серверы смогут использовать этот сертификат, пока список отзыва сертификатов ЦС (CRL) не будет распространен по всем системам, использующим данный ЦС.
На следующем шаге мы сгенерируем CRL или обновим существующий файл crl.pem
.
Мы отозвали сертификат, и теперь нам нужно обновить список отозванных сертификатов на сервере ЦС. После получения обновленного списка отзыва вы сможете определить, какие пользователи и системы имеют действующие сертификаты в вашем ЦС.
Чтобы сгенерировать CRL, запустите команду easy-rsa
с опцией gen-crl
, оставаясь в директории ~/easy-rsa
:
- ./easyrsa gen-crl
Если вы использовали фразу-пароль при создании файла ca.key
, вам будет предложено ввести ее. Команда gen-crl
сгенерирует файл с именем crl.pem
, содержащий обновленный список отозванных сертификатов для этого ЦС.
Далее вам нужно будет передавать обновленный файл crl.pem
на все серверы и клиенты, использующие этот ЦС, при каждом запуске команды gen-crl
. В противном случае клиенты и системы сохранят доступ к сервисам и системам, использующим ваш ЦС, так как данным сервисам нужно сообщить об отзыве сертификата.
Мы сгенерировали список CRL на сервере ЦС, и теперь нам нужно передать его на удаленные системы, использующие ваш ЦС. Для передачи этого файла на ваши серверы можно использовать команду scp
.
Примечание. В этом обучающем руководстве описывается генерирование и распространение списка CRL вручную. Хотя существуют более надежные автоматические методы распространения и проверки списков отзыва (например, OCSP-Stapling), настройка этих методов не входит в состав данного руководства.
Войдите на сервер ЦС как пользователь non-root user и запустите следующую команду, указав IP-адрес или имя DNS вашего сервера вместо your_server_ip
:
- scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp
Теперь файл передан на удаленную систему и нужно только отправить новую копию списка отзыва во все сервисы.
Перечень необходимых шагов для обновления сервисов, использующих файл crl.pem
, не входит в содержание этого руководства. Обычно требуется скопировать файл crl.pem
в место, где сервис ожидает его найти, а затем перезапустить сервис с помощью systemctl
.
После обновления сервиса с указанием нового файла crl.pem
этот сервис будет отклонять запросы подключения от клиентов и серверов, на которых используется отозванный сертификат.
Если вы хотите изучить содержимое файла CRL, в том числе с целью подтверждения списка отозванных сертификатов, выполните следующую команду openssl
в директории easy-rsa
на вашем сервере ЦС:
- cd ~/easy-rsa
- openssl crl -in pki/crl.pem -noout -text
Также вы можете запустить эту команду на любом сервере или на любой системе, где установлен инструмент openssl
с копией файла crl.pem
. Например, если вы перенесли файл crl.pem
на вторую систему и хотите убедиться в отзыве сертификата sammy-server
, вы можете использовать следующий синтаксис команды openssl
, указав записанный при отзыве сертификата серийный номер вместо выделенного здесь:
- openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output Serial Number: 8348B3F146A765581946040D5C4D590A
Revocation Date: Apr 1 20:48:02 2020 GMT
Обратите внимание на использование команды grep
для проверки уникального серийного номера, записанного на шаге отзыва. Теперь вы можете подтвердить содержимое списка отзыва сертификатов на любой системе, использующей его для ограничения доступа к пользователям и сервисам.
В этом обучающем руководстве мы создали частный Центр сертификации на отдельном сервере CentOS 8 с помощью пакета Easy-RSA. Мы узнали, как работает модель доверия между сторонами, полагающимися на ЦС. Также мы создали и подписали запрос на подписание сертификата (CSR) для вымышленного сервера и научились отзывать сертификаты. Наконец, мы научились генерировать и распространять списки отзыва сертификатов (CRL) на любых системах, использующих наш ЦС, чтобы предотвратить доступ к сервисам пользователей и серверов, которым он не разрешен.
Теперь вы можете выдавать сертификаты пользователям и использовать их в OpenVPN и других подобных сервисах. Также вы можете использовать свой ЦС для настройки веб-серверов разработки и тестирования с помощью сертификатов, чтобы защитить свои непроизводственные среды. Использование ЦС с сертификатами TLS во время разработки поможет обеспечить максимальное соответствие вашего кода и сред разработки и тестирования производственной среде.
Если вам требуется дополнительная информация об использовании OpenSSL, вам будет полезен наше обучающее руководство Основы OpenSSL: работа с сертификатами SSL, закрытыми ключами и запросами CSR, который поможет вам лучше познакомиться с основами OpenSSL.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!