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