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

6 минут чтения
Средний рейтинг статьи — 4.9

Самоподписанные сертификаты часто используются для разработки, тестирования или внутреннего использования, когда нет необходимости в сертификатах, выданных доверенными центрами сертификации (CA). В этой статье мы пошагово разберём, как создать такой сертификат с помощью OpenSSL.

Что потребуется

  • OpenSSL (предустановлен в большинстве дистрибутивов Linux и macOS, на Windows можно установить вручную)
  • Терминал

Шаг 1: Создание приватного ключа

Приватный ключ используется для подписи сертификата и защищает соединение.

openssl genrsa -out private.key 2048
  • private.key — имя файла с приватным ключом
  • 2048 — длина ключа в битах (можно указать 4096 для большей надёжности)

Шаг 2: Создание запроса на сертификат (CSR)

Хотя мы не будем отправлять CSR центру сертификации, он нужен для создания сертификата.

openssl req -new -key private.key -out request.csr

В процессе выполнения команды OpenSSL задаст вам вопросы:

  • Country Name (код страны)
  • State or Province Name (регион)
  • Locality Name (город)
  • Organization Name (название компании)
  • Common Name (домен, например: example.com или localhost)

⚠️ Важно: в поле Common Name укажите домен или IP-адрес, для которого вы создаёте сертификат.

Шаг 3: Создание самоподписанного сертификата

Теперь, используя ключ и CSR, создаём сертификат, действительный, например, один год (365 дней):

openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt

certificate.crt — итоговый сертификат

Шаг 4 (опционально): Объединение сертификата и ключа в .pem

Некоторые приложения (например, Nginx) используют формат PEM:

cat private.key certificate.crt > fullchain.pem

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

Убедитесь, что всё сработало:

openssl x509 -in certificate.crt -text -noout

Вы увидите информацию о сроке действия, алгоритмах и субъекте сертификата.

Где можно использовать самоподписанный сертификат

  • Локальные серверы (например, localhost)
  • Тестовые среды
  • Внутренние сервисы, доступные только по VPN

Важное замечание

Браузеры и системы не доверяют самоподписанным сертификатам, и будут показывать предупреждения при открытии таких сайтов. Это нормально для тестирования, но для продакшена рекомендуется использовать сертификаты от Let's Encrypt или другого CA.

Заключение

Создание самоподписанного SSL-сертификата — простой и быстрый способ обеспечить HTTPS для разработки и тестирования. OpenSSL предоставляет все необходимые инструменты, и при правильном подходе вы можете безопасно работать даже в изолированных средах.

6 минут чтения
Средний рейтинг статьи — 4.9

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний