🔐 Как создать самоподписанный сертификат SSL

Мануал

Сертификаты SSL используются для облегчения аутентификации и шифрования в Интернете.

Обычно эти сертификаты выдаются доверенными сторонними центрами сертификации, такими как Let’s Encrypt.

Самоподписанный сертификат – это сертификат, который формируется без подтверждения стороннего центра сертификации.

TLS/SSL – это комбинация открытого сертификата и закрытого ключа.

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

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

Предпосылки

Машина Linux и пользователь с привилегиями sudo.

Установка OpenSSL

OpenSSL доступен по умолчанию во всех основных дистрибутивах Linux.

Выполните приведенную ниже команду, чтобы убедиться, что OpenSSL уже установлен на вашем компьютере с Linux.

$ openssl version
Если вы не видите вывода, показывающего подробную информацию о версии OpenSSL, выполните следующую команду, чтобы установить OpenSSL.

Создадим самоподписанный сертификат SSL с помощью OpenSSL

Убедившись, что инструмент OpenSSL установлен на вашем компьютере с Linux, вы можете приступить к созданию сертификата.

Информация CSR требуется для создания закрытого ключа.

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

Чтобы создать самоподписанный сертификат SSL, введите:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout my_key.key -out my_cert.crt

Эта команда создаст самоподписанный сертификат, который будет действителен в течение 365 дней.

Сертификат и файл ключа будут созданы в текущем каталоге, если явно не указан другой каталог.

Вот что обозначает каждый флаг:

  • req – сделать запрос на подпись сертификата
  • -newkey rsa: 4096 – Создает ключ RSA длиной 4096 бит. Если не указано иное, по умолчанию будет создан ключ длиной 2048 бит.
  • -keyout – имя файла закрытого ключа, в котором будет храниться ключ
  • -out – указывает имя файла для хранения нового сертификата
  • -nodes – пропустить шаг по созданию сертификата с парольной фразой.
  • -x509 – Создать сертификат формата X.509.
  • -days – количество дней, в течение которых сертификат действителен

Поля CSR:

  • C = – Название страны. (двухбуквенный код).
  • ST = – Название штата или провинции.
  • L = – Название населенного пункта.
  • O = – полное название вашей организации.
  • OU = – Название организационной единицы.
  • CN = – полное доменное имя.

Создадим самоподписанный сертификат, используя существующий закрытый ключ и CSR

В некоторых ситуациях, когда у вас есть закрытый ключ и csr, будет достаточно следующих шагов.

Как создать закрытый ключ OpenSSL

Сначала выполните команду, показанную ниже, чтобы создать и сохранить свой закрытый ключ.

Этот закрытый ключ необходим для подписи вашего SSL-сертификата.

Вы можете изменить my_key в приведенной ниже команде на свое собственное значение.

$ sudo openssl genrsa -out my_key.key

Вот что означают флаги команды:

  • genrsa Создать закрытый ключ RSA
  • -out Выходной файл

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

Как создать запрос на подпись сертификата

Следующим шагом является создание запроса на подпись сертификата (CSR).

CSR – это то, что вы обычно отправляете в УЦ.

Но в этом случае вы собираетесь подписать его самостоятельно.

При создании CSR вас попросят предоставить некоторую информацию.

Некоторые поля можно оставить пустыми, нажав клавишу ETCD_CLIENT_CERT_AUTH

Теперь запустите команду, показанную ниже, чтобы начать создание CSR.

$ sudo openssl req -new -key my_key.key -out my_csr.csr

Вот что обозначает каждый флаг команды

  • req Сделать запрос на подпись сертификата
  • -new Новый запрос
  • -key Путь, где хранится ваш файл закрытого ключа
  • -out Выходной файл

 

Подпишем сертификат самостоятельно

Когда вы запустите команду, показанную ниже, будет создан самоподписанынй сертификат, который будет действителен в течение 365 дней.

$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt

Проверим сертификат

Вы можете проверить детали сертификата в текстовом формате с помощью команды:

openssl x509 -text -noout -in my_cert.crt

Заключение

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

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

Добавить комментарий