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

Как создать ssl сертификат для локального сервера

Как создать ssl сертификат для локального сервера — пошаговая инструкция для разработки: генерация, доверие в системе и проверка работы без ошибок браузера.

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

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

Что именно создавать

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

Минимальный набор файлов обычно такой:

  • Приватный ключ сервера;
  • Сертификат сервера;
  • При необходимости — корневой сертификат локального CA.

Сертификат для localhost должен содержать правильные имена. Сейчас браузеры проверяют не только CN, но и SAN, поэтому в SAN стоит указать localhost, а при необходимости — 127.0.0.1 и другие локальные хосты.

Создание через OpenSSL

Самый прямой способ — использовать OpenSSL. Ниже пример для самоподписанного сертификата, если вам нужно быстро понять, как создать ssl сертификат для локального сервера без лишней инфраструктуры:

openssl req -x509 -newkey rsa:2048 -nodes -days 365 \
  -keyout localhost.key -out localhost.crt \
  -subj "/CN=localhost"

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

  • Создать RSA-ключ или ключ ECDSA;
  • Подготовить запрос на сертификат с SAN;
  • Выпустить сертификат из CSR;
  • Подключить его в настройках локального веб-сервера.

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

Как подключить сертификат к серверу

После выпуска файлов их нужно указать в конфигурации сервера. Для Nginx обычно задают пути к ssl_certificate и ssl_certificate_key, для Apache — аналогичные директивы в SSL-конфигурации. Важно, чтобы сервер отдавал именно тот сертификат, который соответствует закрытому ключу, иначе запуск завершится ошибкой.

Если вы используете Node.js, Python или другой встроенный сервер, проверьте, умеет ли он принимать PEM-файлы напрямую. Часто достаточно передать путь к сертификату и ключу в параметрах запуска.

Для проверки откройте сайт по https://localhost и убедитесь, что браузер не показывает предупреждение о несоответствии имени. Если предупреждение остаётся, проверьте SAN, путь к файлам и то, добавлен ли локальный CA в доверенные.

Проверка и типичные ошибки

Когда вы уже знаете, как создать ssl сертификат для локального сервера, полезно сразу проверить три вещи:

  1. Совпадает ли имя хоста с тем, что указано в сертификате;
  2. Не просрочен ли сертификат;
  3. Корректно ли сервер отдает цепочку доверия, если вы используете локальный CA.

Частая ошибка — использовать IP-адрес вместо имени, но не добавить его в SAN. Ещё одна проблема — путать сертификат и ключ: сертификат можно копировать, а приватный ключ нужно хранить отдельно и не передавать без необходимости. Если браузер продолжает ругаться, очистите кэш HSTS для домена localhost и перезапустите сервер.

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

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

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

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

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

PHP

PHP какой тип

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

CSS

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

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

Заявка

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

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

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

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

Написать в Telegram