
В этой статье объясняется, как создать самоподписанный SSL-сертификат с помощью инструмента openssl .
Что такое самоподписанный SSL-сертификат
Самоподписанный SSL-сертификат — это сертификат, подписанный создателем, а не доверенным центром сертификации. Самоподписанные сертификаты могут иметь тот же уровень шифрования, что и SSL-сертификат, подписанный доверенным центром сертификации.
Веб-браузеры не распознают самоподписанные сертификаты как действительные. При использовании самоподписанного сертификата веб-браузер выводит предупреждение посетителю о том, что сертификат веб-сайта не может быть проверен.
Обычно самоподписанные сертификаты используются для тестирования или внутреннего использования. Не следует использовать самоподписанные сертификаты в производственных системах, подключенных к Интернету.
Предпосылки
Для создания самоподписанного сертификата необходим набор инструментов OpenSSL.
Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте терминал, введите openssl version и нажмите Enter. Если пакет установлен, система выведет версию OpenSSL. В противном случае вы увидите сообщение типа openssl command not found .
Если пакет openssl не установлен в вашей системе, вы можете установить его с помощью менеджера пакетов вашего дистрибутива:
-
Убунту и Дебиан
sudo apt install openssl -
Centos и Fedora
sudo yum install openssl
Создание самоподписанного SSL-сертификата
Чтобы создать новый самоподписанный SSL-сертификат, используйте команду openssl req :
openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out example.crt -keyout example.key
Давайте разберем команду и разберемся, что означает каждая опция:
-
-newkey rsa:4096— создаёт новый запрос на сертификат и ключ RSA длиной 4096 бит. Значение по умолчанию — 2048 бит. -
-x509— создает сертификат X.509. -
-sha256— использовать 265-битный SHA (алгоритм безопасного хэширования). -
-days 3650— количество дней, на которые заверяется сертификат. 3650 — это десять лет. Можно использовать любое положительное целое число. -
-nodes— создает ключ без парольной фразы. -
-out example.crt— Указывает имя файла для записи нового сертификата. Можно указать любое имя файла. -
-keyout example.key— Указывает имя файла для записи нового закрытого ключа. Можно указать любое имя файла.
Дополнительную информацию о параметрах команды openssl req можно найти на странице документации OpenSSL req.
После нажатия Enter команда сгенерирует закрытый ключ и задаст вам ряд вопросов. Предоставленная вами информация будет использована для создания сертификата.
Generating a RSA private key ......................................................................++++ ........++++ writing new private key to 'example.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----
Введите запрашиваемую информацию и нажмите Enter .
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:Alabama Locality Name (eg, city) []:Montgomery Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize Organizational Unit Name (eg, section) []:Marketing Common Name (eg server FQDN or YOUR name) []:linuxgazette.ru Email Address []:hello@linuxgazette.ru
Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:
ls
example.crt example.key
Вот и всё! Вы создали новый самоподписанный SSL-сертификат.
Всегда полезно создать резервную копию нового сертификата и ключа на внешнем хранилище.
Создание самоподписанного SSL-сертификата без запроса
Если вы хотите создать самоподписанный SSL-сертификат без запроса каких-либо вопросов, используйте опцию -subj и укажите всю информацию о субъекте:
openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out example.crt -keyout example.key -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key ......................................................................++++ ........++++ writing new private key to 'example.key' -----
Поля, указанные в строке -subj , перечислены ниже:
-
C=— Название страны. Двухбуквенная аббревиатура ISO. -
ST=— Название штата или провинции. -
L=— Название населённого пункта. Название города, в котором вы находитесь. -
O=— Полное название вашей организации. -
OU=— Организационная единица. -
CN=— Полное доменное имя.
Заключение
В этом руководстве мы показали, как создать самоподписанный SSL-сертификат с помощью инструмента openssl. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Связанные руководства