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 для мобильного приложения.

Ключевые цифры

Термины на странице

PEM
PEM это текстовый формат файлов сертификатов и ключей, файлы .crt и .key часто в нём же.
Самоподписанный сертификат
Самоподписанный сертификат выпускает сам владелец. Браузеры ему не доверяют, он годится для тестов.
Linux
Linux это семейство операционных систем для серверов: Ubuntu, Debian, AlmaLinux и другие.
A-запись
A-запись связывает домен с IPv4-адресом сервера.
DNS
DNS это система, которая переводит имя домена в адрес сервера.
IPv4
IPv4 это адрес сервера в сети. Адресов мало, поэтому дополнительный IPv4 обычно стоит денег.

Что проверить

  1. Выпустите сертификат после того, как домен указывает на сервер.
  2. Проверьте, что установлена вся цепочка сертификатов.
  3. Включите перенаправление с HTTP на HTTPS.
  4. Сравнивайте цену за одинаковую конфигурацию: ядра, память, диск, IPv4.
  5. Смотрите цену продления и оплаты помесячно, а не только акционную.
  6. Сверяйте цены на сайте провайдера в день оплаты: они меняются.

Связанные страницы