SSL для localhost: как включить https на локальном сервере, термины и чек-лист
Подробности, цифры, термины и чек-лист по теме «SSL для localhost: как включить https на локальном сервере». Страница справочника целиком: SSL для localhost.
Коротко о теме
SSL для localhost: Let's Encrypt его не выдаёт, зато mkcert за две команды делает доверенный сертификат. Есть и способ через OpenSSL.
Подробности по разделам
Нужен ли https на localhost и почему обычный сертификат не выдают
Для простой разработки https часто не нужен: Chrome и Firefox считают http://localhost защищённым контекстом, и service worker с геолокацией там работают. Локальный https нужен, когда проект зависит от защищённого соединения: cookie с флагом Secure, вход через OAuth с адресом https, HTTP/2, проверка смешанного содержимого, тест с телефона в той же сети.
Как сделать сертификат для localhost через mkcert
Ключ корневого центра не передавайте Папку с файлами корневого центра показывает команда mkcert -CAROOT. Файл rootCA-key.pem позволяет выпустить сертификат на любой сайт для всех, кто доверяет вашему корневому: держите его только у себя.
Как создать самоподписанный сертификат localhost через OpenSSL
Получится пара: закрытый ключ localhost.key и сертификат localhost.crt. Как устроены такие сертификаты и чем они отличаются от выпущенных центром: самоподписанный сертификат.
Почему браузер ругается на сертификат localhost и как это убрать
Firefox ведёт собственное хранилище, а Chrome на Linux использует базу NSS, поэтому им файл добавляют отдельно в настройках сертификатов. Кто завладеет закрытым ключом доверенного сертификата, сможет подменить сайт, поэтому держите такой ключ только на своём компьютере и не кладите его в репозиторий.
Какой способ получить https для localhost выбрать
SSL для IP-адреса. Если вы пишете мобильное приложение, локальный корневой сертификат подключают в отладочной сборке: SSL для мобильного приложения.
Ключевые цифры
- Обходной путь: настоящий домен, чья A-запись указывает на 127.0.0.1.
- Https нужен, когда проверяют cookie с флагом Secure, вход через OAuth, HTTP/2 или открывают сайт с телефона, где localhost уже не защищённый контекст.
- Firefox хранит доверенные центры у себя. mkcert добавляет корневой сертификат туда, если на компьютере есть утилита certutil (на Linux это пакет libnss3-tools, на macOS пакет nss).
- Источники цифр на этой странице: 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.
Термины на странице
- PEM
- PEM это текстовый формат файлов сертификатов и ключей, файлы .crt и .key часто в нём же.
- Самоподписанный сертификат
- Самоподписанный сертификат выпускает сам владелец. Браузеры ему не доверяют, он годится для тестов.
- Linux
- Linux это семейство операционных систем для серверов: Ubuntu, Debian, AlmaLinux и другие.
- A-запись
- A-запись связывает домен с IPv4-адресом сервера.
- DNS
- DNS это система, которая переводит имя домена в адрес сервера.
- IPv4
- IPv4 это адрес сервера в сети. Адресов мало, поэтому дополнительный IPv4 обычно стоит денег.
Что проверить
- Выпустите сертификат после того, как домен указывает на сервер.
- Проверьте, что установлена вся цепочка сертификатов.
- Включите перенаправление с HTTP на HTTPS.
- Сравнивайте цену за одинаковую конфигурацию: ядра, память, диск, IPv4.
- Смотрите цену продления и оплаты помесячно, а не только акционную.
- Сверяйте цены на сайте провайдера в день оплаты: они меняются.