Сайт в разработке Наполняем разделы и правим ошибки — что-то может выглядеть или работать не так. Если заметили — позвоните или напишите.

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

Как создать самоподписанный сертификат ssl linux — практическая инструкция по OpenSSL: команды, настройка и проверка сертификата для локальной среды и тестов.

Раздел: SSL и безопасность

Если нужно быстро поднять HTTPS для тестов, локальной разработки или внутреннего сервера, полезно знать, как создать самоподписанный сертификат ssl linux. Такой сертификат шифрует соединение, но не подтверждается центром сертификации, поэтому браузер и клиенты будут предупреждать о недоверенном издателе.

Ниже показан рабочий способ через OpenSSL: он подходит для большинства дистрибутивов и не требует отдельного ПО. Важно заранее понять, где вы будете использовать сертификат: для одного домена, локального имени хоста или IP-адреса. От этого зависит содержимое файла запроса и список SAN.

Подготовка и генерация ключа

Сначала проверьте, установлен ли OpenSSL, и создайте каталог для файлов. Для примера используем отдельную папку, чтобы ключи не смешивались с остальными данными. Далее сгенерируйте закрытый ключ и сам сертификат одной командой или поэтапно.

mkdir -p ~/certs && cd ~/certs
openssl genrsa -out server.key 2048

После этого можно создать сертификат со сроком действия, например на 365 дней. Если нужен быстрый вариант для одного хоста, подойдёт простая команда:

openssl req -x509 -new -key server.key -sha256 -days 365 -out server.crt

Во время запроса OpenSSL попросит ввести параметры субъекта. Для локального использования не все поля критичны, но Common Name лучше указать осмысленно: имя хоста, домен или localhost. Если этого не сделать, сертификат всё равно создастся, но его удобство в работе снизится.

Как добавить SAN и избежать ошибок браузера

Во многих современных клиентах одного Common Name недостаточно. Если вам нужно понять, как создать самоподписанный сертификат ssl linux без предупреждений для конкретного имени, добавьте Subject Alternative Name. Это особенно важно для современных браузеров, Nginx, Apache и API-клиентов.

Создайте конфигурационный файл, например openssl.cnf, и укажите нужные имена:

[req]
distinguished_name = dn
x509_extensions = v3_req
prompt = no

[dn]
CN = example.local

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.local
DNS.2 = www.example.local
IP.1 = 127.0.0.1

Затем выполните генерацию:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout server.key -out server.crt -config openssl.cnf

Если сертификат нужен только для теста на одном компьютере, добавьте localhost и 127.0.0.1. Если планируется доступ по внутреннему адресу, впишите именно его. Иначе клиент будет ругаться на несоответствие имени.

Проверка результата и подключение к серверу

Когда файлы готовы, убедитесь, что они действительно созданы и содержат ожидаемые данные. Так вы поймёте, что процесс завершился успешно, а не просто вывел команды без результата.

  • Проверьте наличие файлов: server.key и server.crt.
  • Посмотрите сведения о сертификате: openssl x509 -in server.crt -text -noout.
  • Убедитесь, что в выводе есть нужный Common Name и SAN.
  • Проверьте срок действия и алгоритм подписи.

Если сертификат используется на сервере, укажите путь к key и crt в настройках веб-сервера. После перезапуска откройте сайт по HTTPS и проверьте предупреждение браузера. Для самоподписанного варианта оно нормально: главное, чтобы цепочка, имя и срок действия соответствовали ожиданиям.

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

Другие ответы

SSL и безопасность

Как создать ssl сертификат windows

Практический разбор запроса «как создать ssl сертификат windows»: что можно сделать в Windows, какие есть варианты, как проверить результат и избежать типичных ошибок.

PHP

PHP какой тип

Коротко и по делу: разберём запрос php какой тип, покажем, где в PHP есть типы данных, как их проверять и почему вопрос бывает неоднозначным.

CSS

Как задать css в html

Практическое объяснение, как задать css в html: способы подключения, приоритеты, частые ошибки и проверка результата для страницы без лишней теории.

Заявка

Расскажите о проекте

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

Форма обратной связи

Отвечаем в рабочие дни с 10:00 до 19:00

Написать в Telegram