Описываются необходимые условия для того, чтобы создать службу сертификатов на Linux – информация, файловая структура и конфигурационный файл openSSL.
В “Как создать службу сертификатов. Определения и пояснения” определено, что такое цифровой сертификат и зачем он нужен. Продолжаем.
Самый простой путь – использовать команды командной строки программы openSSL ОС Linux.
Для создания службы сертификатов теретически должен быть выделен отдельный компьютер с ОС Linux, который не подключен к интернету и стоит в отдельной бронированной комнате, куда никто проникнуть не может. На практике, по моему мнению, достаточно старенького компьютера с установленной на нем Linux. Мы его включаем, когда необходимо создать ключи и сертификат для чего-либо, а потом выключаем.
Подготовка:
1. Для создания службы сертификатов необходимо подготовить ответы на следующие вопросы:
- 2-х буквенный код страны (country 2 letter code)
- Название области (state or province name)
- Название населенного пункта (locality name (city))
- Название организации (компании) (organization (company) name)
- Число дней годности сертификата (number of day host sertificate is valid)
В качестве ответа на последний вопрос можно ввести от 365 (один год) вплоть до 3650 (десять лет). Зависит от вкуса и политик безопасности компании.
2. Придумать хороший пароль для секретного ключа службы сертификатов. Что такое хороший пароль и как его создать я написал в статье «Что такое ssh/sftp и для чего он нужен?». Пароль для секретного ключа является дополнительной линией защиты – если по какой-нибудь причине файл секретного ключа будет утерян, без знания пароля воспользоваться им будет нельзя.
3. Включить компьютер и запустили терминал (см. «Несколько слов о Linux“). Для создания ключей и сертификата необходим пакет openSSL, который обязательно входит во все дистрибутивы Linux. В данной статье все примеры будут для CentOs Linux (Red Hat Enterprise Linux).
4. Создать файловую структуру службы сертификатов, которая может размещаться где угодно. Для работы службы сертификатов необходимо несколько папок и файлов. Назовем корневую папку службы сертификатов rootCA, тогда нам нужны папки:
/rootCA/certs/
/rootCA/crl/
/rootCA/private/
и файлы
/rootCA/index.txt
/rootCA/serial
Если пакет openSSL установлен, а он должен быть установлен, то такая файловая структура уже где-то есть на диске. Например, для CentOS Linux rootCA является папка /etc/pki/tls. Проверяем (см. «Команды Linux. Краткое описание»).
#su
#cd /etc/pki/tls
#ls -la
Если получили структуру папок, как на рис. 1, то переходим к следующему шагу, иначе создаем нужные папки и файлы.

Рис. 1. Файловая структура службы сертификатов
#mkdir -m 0700 /etc/pki/tls /etc/pki/tls/certs /etc/pki/tls/crl /etc/pki/tls/private
#touch /etc/pki/tls/index.txt
#echo 01 >> /etc/pki/tls/serial
5, Конфигурационный файл openSSL.
Если пакет openSSL был установлен правильно, то в корневой папке службы сертификатов должен быть конфигурационный файл openSSL, который называется openssl.cnf и состоит из нескольких секций. Нас интересуют только две секции – секция ca_default и секция req_distinguished_name.
Секция ca_default задает файловую структуру службы сертификатов и, чтобы приведенные в статье примеры работали, должна выглядеть следующим образом.
[ ca ]
default_ca = CA_default # The default ca section
[ CA_default ]
dir = /etc/pki/tls # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/certs # default place for new certs.
certificate = $dir/certs/ca.crt # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/ca.key # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
Пожалуйста обратите внимание на значения переменных dir, certificate, private_key. Если они отличаются, исправьте их значения при помощи редактора vi (см. «Редактор vi. Краткая инструкция»). Это очень важно.
Секция req_distinguished_name задает значения по умолчанию данных пользователя (п. 1. этой статьи). Если будет нужно много сертификатов, то лучше задать ответы на вопросы в п. 1. в этой секции, что сэкономит много времени и позволит избежать ошибок.
Если по каким-то причинам файл openssl.cnf отсутствует, то создайте его при помощи текстового редактора vi и скопируйте отсюда обе секции.
Если все сделано правильно, то можно теперь можно создать службу сертификатов.
No comments yet.