Создание самозаверяющего SSL-сертификата

В этой статье объясняется, как создать самоподписанный сертификат SSL с помощью инструмента openssl .

Что такое самоподписанный сертификат SSL?

Самозаверяющий сертификат SSL — это сертификат, подписанный лицом, создавшим его, а не доверенным центром сертификации. Самозаверяющие сертификаты могут иметь тот же уровень шифрования, что и доверенный сертификат SSL, подписанный ЦС.

Веб-браузеры не распознают самозаверяющие сертификаты как действительные. При использовании самозаверяющего сертификата веб-браузер показывает посетителю предупреждение о том, что сертификат веб-сайта не может быть проверен.

Обычно самозаверяющие сертификаты используются для целей тестирования или внутреннего использования. Вы не должны использовать самозаверяющий сертификат в производственных системах, подключенных к Интернету.

Подготовка

Набор инструментов OpenSSL необходим для создания самозаверяющего сертификата.

Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте терминал, введите openssl version и нажмите Enter. Если пакет установлен, система распечатает версию OpenSSL, иначе вы увидите что-то вроде openssl command not found .

Если пакет openssl не установлен в вашей системе, вы можете установить его с помощью диспетчера пакетов вашего дистрибутива:

  • Ubuntu и Debian

     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 — Создает новый запрос сертификата и 4096-битный ключ RSA. По умолчанию — 2048 бит.
  • -x509 — Создает сертификат X.509.
  • -sha256 — использовать 265-битный SHA (алгоритм безопасного хеширования).
  • -days 3650 — количество дней, в течение которых сертификат должен быть сертифицирован. 3650 — это десять лет. Вы можете использовать любое положительное целое число.
  • -nodes — создает ключ без ключевой фразы.
  • -out example.crt — указывает имя файла, в которое будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • -keyout example.key — указывает имя файла, в которое будет -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 (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:hello@linuxize.com

Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду 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. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

One Response
  1. 15.02.2021

Оставьте комментарий