Создание самоподписанных сертификатов: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Понятия SSL-сертификатов:
Понятия SSL-сертификатов:
*.pem, .crt, .cer - готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей организаци;
*'''.pem, .crt, .cer''' - готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей организаци;
*.key - закрытый или открытый ключ;
*'''.key''' - закрытый или открытый ключ;
*.csr - запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, об организации и домене, которую вы указали.
*'''.csr''' - запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, об организации и домене, которую вы указали.


Для генерации мы воспользуемся OpenSSL.
Для генерации мы воспользуемся OpenSSL.
Строка 8: Строка 8:
1. Создаем закрытый "корневой" ключ:
1. Создаем закрытый "корневой" ключ:
  openssl senrsa -out rootCA.key
  openssl senrsa -out rootCA.key
*genrsa - создать закрытый ключ RSA
*'''genrsa''' - создать закрытый ключ RSA
*-out - выходной файл
*'''-out''' - выходной файл
Получим файл: rootCA.key
Получим файл: ''rootCA.key''


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


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


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


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


Вводим [Пример]:
Вводим [Пример]:
Строка 41: Строка 41:
Вводим пароль.
Вводим пароль.


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


4. Выпускаем сертификат
4. Выпускаем сертификат
  openssl x509 -req -in org.scr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out org.crt -days 365 -sha 256
  openssl x509 -req -in org.scr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out org.crt -days 365 -sha 256
*req - создать запрос на подпись
*'''req''' - создать запрос на подпись
*in - вводимый файл запроса
*'''in''' - вводимый файл запроса
*CA - файл корневого сертификата
*'''CA''' - файл корневого сертификата
*CAkey - ключ корневого сертификата
*'''CAkey''' - ключ корневого сертификата
*out - выходной crt-файл
*'''out''' - выходной crt-файл
*days - количество дней действия
*'''days''' - количество дней действия
[[Категория:HOWTO]]
[[Категория:HOWTO]]
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}}

Версия от 09:45, 20 апреля 2021

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

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

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

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

openssl senrsa -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.scr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out org.crt -days 365 -sha 256
  • req - создать запрос на подпись
  • in - вводимый файл запроса
  • CA - файл корневого сертификата
  • CAkey - ключ корневого сертификата
  • out - выходной crt-файл
  • days - количество дней действия