SSL для localhost: как включить https на локальном сервере, коротко и с данными
Конспект страницы: 5 разделов коротко, данные на 19 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: SSL для localhost: как включить https на локальном сервере.
Коротко
Главная / Установка / SSL для localhost SSL для localhost нельзя получить у обычного центра сертификации: Let's Encrypt и платные ЦС проверяют домен или публичный адрес, а localhost у каждого компьютера свой. Для разработки сертификат делают сами: утилита mkcert выпускает файл, которому браузер доверяет, а OpenSSL создаёт самоподписанный, на который браузер будет ругаться. Для localhost берите mkcert: две команды дают сертификат, которому доверяет браузер.
Конспект по разделам
Нужен ли https на localhost и почему обычный сертификат не выдают
Центр сертификации выдаёт сертификат тому, кто докажет владение именем: ответит на запрос по домену или управляет его DNS. У имени localhost владельца нет, оно указывает на ваш же компьютер. Поэтому Let's Encrypt и платные центры отвечают отказом.
Как сделать сертификат для localhost через mkcert
mkcert создаёт собственный корневой сертификат, добавляет его в хранилища системы и браузеров и выпускает по нему сертификаты для любых имён. Ставится из менеджера пакетов: choco install mkcert или scoop install mkcert на Windows, brew install mkcert на macOS. На Linux для Firefox и Chrome нужен пакет libnss3-tools.
- Установите корневой сертификат в доверенные: команда просит подтверждение системы.
- Выпустите сертификат на нужные имена: mkcert создаст два файла рядом с текущей папкой.
- Подключите файлы к серверу и откройте https://localhost.
Как создать самоподписанный сертификат localhost через OpenSSL
Если ставить mkcert нельзя, подойдёт OpenSSL. Важно указать имена в поле subjectAltName: современные браузеры сверяют адрес именно с ним, а поле CN игнорируют. Нужна версия OpenSSL 1.1.1 или новее, в ней есть ключ -addext.
Почему браузер ругается на сертификат localhost и как это убрать
Самоподписанному сертификату браузер не доверяет, потому что его не выдавал известный центр, и показывает ошибку вроде NET::ERR_CERT_AUTHORITY_INVALID. Разбор причин: сертификат не доверен. Предупреждение уйдёт, если добавить файл в хранилище доверенных сертификатов.
Какой способ получить https для localhost выбрать
Ответьте на два вопроса: подсказка назовёт способ под вашу ситуацию. Два ответа, и подсказка назовёт способ Когда проект выходит из разработки, локальный сертификат заменяют настоящим: запрос на подпись и выпуск описаны в разделе установки сертификата. Обращаться к серверу по голому адресу вместо имени сложнее: см.
Данные
| Способ | Доверие браузера | Когда подходит |
|---|---|---|
| mkcert | Есть, после mkcert -install | Разработка на своём компьютере |
| OpenSSL, самоподписанный | Нет, предупреждение | Быстрая проверка, тесты |
| Настоящий домен на 127.0.0.1 | Есть, сертификат от Let's Encrypt | Команда, общий стенд |
Данные на 19 октября 2026.
Вопросы и ответы
Можно ли получить Let's Encrypt для localhost?
Нет, на имя localhost центр сертификации не выдаёт ничего. Обходной путь: настоящий домен, чья A-запись указывает на 127.0.0.1. На него выпускают обычный сертификат, а запросы идут на ваш компьютер.
Нужен ли https на localhost, если Chrome и так считает его безопасным?
Для многих задач нет: service worker и геолокация работают и по http://localhost. Https нужен, когда проверяют cookie с флагом Secure, вход через OAuth, HTTP/2 или открывают сайт с телефона, где localhost уже не защищённый контекст.
Почему Firefox не доверяет сертификату mkcert на localhost?
Firefox хранит доверенные центры у себя. mkcert добавляет корневой сертификат туда, если на компьютере есть утилита certutil (на Linux это пакет libnss3-tools, на macOS пакет nss). Поставьте её, повторите mkcert -install и перезапустите Firefox.
Как открыть локальный https-сайт с телефона?
Телефон должен доверять корню, которым подписан сертификат. Скопируйте rootCA.pem на устройство, установите и включите доверие в настройках сертификатов. Адрес в сертификате должен совпадать с тем, по которому телефон открывает компьютер.