Как создать службу сертификатов. Подготовка

Описываются необходимые условия для того, чтобы создать службу сертификатов на 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. Файловая структура службы сертификатов

Рис. 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.

Leave a Reply

Please verify that you are not a robot.

Thank You for your comment.

s2Member®