Создание самоподписанных сертификатов

Материал из ALT Linux Wiki
Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.

Понятия SSL-сертификатов:

  • .pem, .crt, .cer - готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей организаци;
  • .key - закрытый или открытый ключ;
  • .csr - запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, об организации и домене, которую вы указали.

Для генерации мы воспользуемся OpenSSL.

1. Создаем закрытый "корневой" ключ:

openssl genrsa -out rootCA.key
  • genrsa - создать закрытый ключ RSA
  • -out - выходной файл

Получим файл: rootCA.key

2. Создаем корневой сертификат с использованием сгенерированого ключа:

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
  • rootCA.key - ключик, который мы сгенеририровали на прошлом шаге
  • 1024 - количество дней, сколько будет действовать корневой сертификат
  • rootCA.pem - файл корневого сертификата
  • days - количество дней действия

Получим файл: rootCA.pem

3. Создаем запрос на сертификат (CSR)

CSR - обычно это та информация, которая отправляется в УЦ, но в нашем случае мы подписываем сертификат самостоятельно.

openssl req -new -key rootCA.key -out org.csr
  • req - создать запрос на подпись
  • new - новый запрос
  • key - путь к закрытому ключу
  • out - выходной файл

Вводим [Пример]:

  • Country name [Страна]: RU
  • State or Province [Край или область]: Murmanskaya obl. [можно пропустить]
  • Locality Name [Населенный пункт]: Umba
  • Organization Name: Gazeta Rassvet
  • Organization Unit Name: Redaction
  • Common Name: [обычно указывается адрес сайта] rassvet-gazete.ru
  • email: [можно пропустить]

Вводим пароль.

Получим файл org.csr - содержащий информацию, необходимую для выпуска сертификата.

4. Выпускаем сертификат

openssl x509 -req -in org.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out org.crt -days 365 -sha256
  • req - создать запрос на подпись
  • in - вводимый файл запроса
  • CA - файл корневого сертификата
  • CAkey - ключ корневого сертификата
  • out - выходной crt-файл
  • days - количество дней действия