Главная/Установка/SSL для localhost
SSL для localhost: как включить https на локальном сервере
SSL для localhost нельзя получить у обычного центра сертификации: Let's Encrypt и платные ЦС проверяют домен или публичный адрес, а localhost у каждого компьютера свой. Для разработки сертификат делают сами: утилита mkcert выпускает файл, которому браузер доверяет, а OpenSSL создаёт самоподписанный, на который браузер будет ругаться.
Ответ за 30 секунд
Для localhost берите mkcert: две команды дают сертификат, которому доверяет браузер. Самоподписанный сертификат OpenSSL работает, но браузер покажет предупреждение, пока вы не добавите файл в доверенные.
Для сайта на домене бесплатный Let's Encrypt выпускается на каждый домен, платные сертификаты начинаются от 1 000 ₽ за 6 месяцев (Таймвеб, на 19 октября 2026).
Какой способ получить https для localhost выбрать2 командыmkcert -install и выпуск
0 ₽стоит свой локальный сертификат
3 имениlocalhost, 127.0.0.1 и ::1 в одном файле
01 · 1 мин
Нужен ли https на localhost и почему обычный сертификат не выдают#
Центр сертификации выдаёт сертификат тому, кто докажет владение именем: ответит на запрос по домену или управляет его DNS. У имени localhost владельца нет, оно указывает на ваш же компьютер. Поэтому Let's Encrypt и платные центры отвечают отказом.
Для простой разработки https часто не нужен: Chrome и Firefox считают http://localhost защищённым контекстом, и service worker с геолокацией там работают. Локальный https нужен, когда проект зависит от защищённого соединения: cookie с флагом Secure, вход через OAuth с адресом https, HTTP/2, проверка смешанного содержимого, тест с телефона в той же сети.
| Способ | Доверие браузера | Когда подходит |
|---|---|---|
| mkcert | Есть, после mkcert -install | Разработка на своём компьютере |
| OpenSSL, самоподписанный | Нет, предупреждение | Быстрая проверка, тесты |
| Настоящий домен на 127.0.0.1 | Есть, сертификат от Let's Encrypt | Команда, общий стенд |
02 · 1 мин
Как сделать сертификат для localhost через mkcert#
mkcert создаёт собственный корневой сертификат, добавляет его в хранилища системы и браузеров и выпускает по нему сертификаты для любых имён. Ставится из менеджера пакетов: choco install mkcert или scoop install mkcert на Windows, brew install mkcert на macOS. На Linux для Firefox и Chrome нужен пакет libnss3-tools.
- Установите корневой сертификат в доверенные: команда просит подтверждение системы.
- Выпустите сертификат на нужные имена: mkcert создаст два файла рядом с текущей папкой.
- Подключите файлы к серверу и откройте
https://localhost.
mkcert -install
mkcert localhost 127.0.0.1 ::1
# получатся localhost+2.pem и localhost+2-key.pem
// Node.js: https-сервер на порту 8443
const https = require('https');
const fs = require('fs');
https.createServer({
key: fs.readFileSync('localhost+2-key.pem'),
cert: fs.readFileSync('localhost+2.pem'),
}, (req, res) => res.end('ok')).listen(8443);
Ключ корневого центра не передавайте
Папку с файлами корневого центра показывает команда mkcert -CAROOT. Файл rootCA-key.pem позволяет выпустить сертификат на любой сайт для всех, кто доверяет вашему корневому: держите его только у себя.
03 · 1 мин
Как создать самоподписанный сертификат localhost через OpenSSL#
Если ставить mkcert нельзя, подойдёт OpenSSL. Важно указать имена в поле subjectAltName: современные браузеры сверяют адрес именно с ним, а поле CN игнорируют. Нужна версия OpenSSL 1.1.1 или новее, в ней есть ключ -addext.
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -days 365 \
-keyout localhost.key -out localhost.crt \
-subj "/CN=localhost" \
-addext "subjectAltName=DNS:localhost,IP:127.0.0.1"
Получится пара: закрытый ключ localhost.key и сертификат localhost.crt. Как устроены такие сертификаты и чем они отличаются от выпущенных центром: самоподписанный сертификат.
04 · 1 мин
Почему браузер ругается на сертификат localhost и как это убрать#
Самоподписанному сертификату браузер не доверяет, потому что его не выдавал известный центр, и показывает ошибку вроде NET::ERR_CERT_AUTHORITY_INVALID. Разбор причин: сертификат не доверен. Предупреждение уйдёт, если добавить файл в хранилище доверенных сертификатов.
# Windows, PowerShell от администратора
certutil -addstore -f "ROOT" localhost.crt
# Debian и Ubuntu
sudo cp localhost.crt /usr/local/share/ca-certificates/localhost.crt
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain localhost.crt
Firefox ведёт собственное хранилище, а Chrome на Linux использует базу NSS, поэтому им файл добавляют отдельно в настройках сертификатов. Кто завладеет закрытым ключом доверенного сертификата, сможет подменить сайт, поэтому держите такой ключ только на своём компьютере и не кладите его в репозиторий.
Инструмент · 1 мин
Какой способ получить https для localhost выбрать#
Ответьте на два вопроса: подсказка назовёт способ под вашу ситуацию.
Какой сертификат взять для localhost
Два ответа, и подсказка назовёт способ
Когда проект выходит из разработки, локальный сертификат заменяют настоящим: запрос на подпись и выпуск описаны в разделе установки сертификата. Обращаться к серверу по голому адресу вместо имени сложнее: см. SSL для IP-адреса. Если вы пишете мобильное приложение, локальный корневой сертификат подключают в отладочной сборке: SSL для мобильного приложения.
06 · 1 мин
Вопросы о сертификате для localhost#
Можно ли получить 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 на устройство, установите и включите доверие в настройках сертификатов. Адрес в сертификате должен совпадать с тем, по которому телефон открывает компьютер.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: SSL-сертификаты Таймвеб, timeweb.com/ru/services/domains/ssl, проверено 19 октября 2026; Let's Encrypt: документация, letsencrypt.org/docs, проверено 19 октября 2026; mkcert: README (установка, имена файлов, rootCA-key.pem, телефоны), github.com/FiloSottile/mkcert, проверено 19 октября 2026.
Подключите SSL к сайту
От бесплатного Let's Encrypt до платных сертификатов GlobalSign с гарантийной выплатой и установкой под ключ. Любой можно вернуть за 7 дней.
- Бесплатный Let's Encrypt на домен
- Платные от 1 000 ₽ за 6 месяцев
- Wildcard на все поддомены
- 7 дней на возврат