Описывается как создать службу сертификатов, которую можно использовать, например, для тестирования серверов, сервисов или аутентификации сотрудников компании. Прочитав эти статьи, Вы через 10 минут будете иметь работающую службу сертификатов. а так же необходимые Вам цифровые ключи и сертификаты. The same in English
Рассматривается создание и использование простейшей одноуровневой службы сертификатов.
В статье «Как создать службу сертификатов. Подготовка» описаны все необходимые шаги для того, чтобы приступить к созданию службы сертификатов. Необходимую информацию о Linux вы можете прочитать в статьях «Несколько слов о Linux» и «Команды Linux. Краткое описание».
Становимся суперпользователем и переходим в корневую папку службы сертификатов.
su
cd /etc/pki/tls
Создание службы сертификатов.
1. Создание секретного ключа службы сертификатов (Рис. 1.).
openssl genrsa -des3 -out private/ca.key 2048
Вводим дважды пароль, который придумали для секретного ключа и создаем секретный ключ длиной 2048 бит в папке private.
chmod 0400 private/ca.key
Делаем его доступным только для чтения и только для суперпользователя.

Рис. 1. Создание секретного ключа CA
2. Создание самоподписанного сертификата службы сертификатов (Рис. 2)
openssl req -new -x509 -days 3650 -key private/ca.key -out certs/ca.crt -config openssl.cnf
Создаем новый самоподписанный сертификат certs/ca.crt, действительный 10 лет, с помощью секретного ключа службы сертификатов privat/ca.key.
Вводим пароль секретного ключа службы сертификатов, а затем, в ответах на вопросы, данные о владельце ключа.

Рис. 2. Создание самоподписанного сертификата
Чтобы посмотреть, что получилось:
openssl x509 -noout -text -in certs/ca.crt
Для того, чтобы Вашей службы сертификатов кто-нибудь доверял, надо партнерам раздавать файл сертификата ca.crt.
3. Создание секретного ключа и запроса на сертификат (Рис. 3).
Секретный ключ и запрос на сертификат могут создаваться для сервера (сервиса, виртуального сервера) или пользователя. Между ними есть некоторые отличия.
Для пользователя в поле Common Name задается имя пользователя латинскими буквами (НЕ ЛОГИН! Например: Vasiliy Ivanov) и пароль, чтобы никто кроме владельца, знающего пароль не смог воспользоваться ключем. Для сервера в поле Common Name задается полное доменное имя сервера (виртуального сервера). Пароль не задается, чтобы администратору не вводить его каждый раз при запуске сервера или сервиса.
Для сервера:
openssl req -newkey rsa:2048 -keyout private/test2.example.com.key -nodes -out test2.example.com.csr
генерирует секретный 2048 битный ключ test2.example.com.key в папке private и запрос на сертификат test2.example.com.csr в текущей папке. Команда попросит ответить на вопросы (Рис. 3.).

Рис. 3. Запрос на сертификат для сервера
Для пользователя:
openssl req -newkey rsa:1024 -keyout private/VasjaIvanov.key -out VasjaIvanov.csr
генерирует секретный 2048 битный ключ VasjaIvanov.key в папке private и запрос на сертификат VasjaIvanov.csr в текущей папке. Команда попросит дважды ввести приготовленный пароль и ответить на вопросы о владельце ключа (См. Рис. 4).

Рис. 4. Запрос на сертификат для пользователя
4. Подписываем запросы секретным ключем (Рис. 5.).
openssl ca -config openssl.cnf -out certs/test2.example.com.crt -infiles test2.example.com.csr
Надо ввести по запросу пароль секретного ключа службы сертификатов, проверить данные сертификата, если все правильно дважды согласиться (нажать «y»). В результате в папке certs появится сертификат сервера test2.example.com.crt. Подписание запроса для сертификата пользователя ничем не отличается.

Рис. 5. Подписание запроса
5. Запросы на сертификат больше не нужны, удаляем.
rm *.csr
6. Переписываем полученные секретный ключ и подписанный сертификат пользователя (сервера), а так же, обязательно, самоподписанный сертификат службы сертификатов certs/ca.crt на флешку для дальнейшего их использования. Секретный ключ службы сертификатов никогда никуда не даем и не забываем его пароль.
Описано как создать службу сертификатов и в течении 10 минут получить необходимые ключи и сертификаты.
No comments yet.