Manuals
RU EN

Сервер · 65

HTTPS на локальном хосте Windows

Сервер 5 мин чтения

Локальный HTTPS — не паранойя. Cookie с флагом Secure, редиректы http→https, платёжные return URL, Service Worker в некоторых сценариях — на чистом http часть вещей не проверить. На MicroServer сертификаты выдаёт локальный CA; задача — чтобы браузер ему доверял.

Это не Let’s Encrypt для публичного домена. Публичный SSL на хостинге — отдельный мануал.

Что нужно

  • Виртуальный хост project.loc уже открывается по http — как создать.
  • Хост добавлен в список SSL сервера (конфиг MicroServer, в т.ч. связанные настройки в config/server.json).
  • Корневой сертификат CA установлен в доверенные хранилища Windows / браузера.
  • Слушает 443, редирект с 80 при необходимости.

Обзор стека: локальный сервер.

Доверие сертификату

Без установки корня Chrome/Edge будут показывать предупреждение. Можно кликать «продолжить», но часть API и cookie-сценариев от этого страдает. Установите корневой сертификат MicroServer в «Доверенные корневые центры сертификации» для локальной машины.

Firefox иногда использует своё хранилище — импорт туда отдельно, если тестируете именно в нём.

Проверка

  1. Откройте https://project.loc — замок без ошибки имени.
  2. Смешанный контент: в исходнике не должно быть активных http-ресурсов с того же хоста.
  3. Логин в админку, сессия переживает обновление страницы.
  4. Если скрипт режет редирект на https — включите URL с https в настройках.

Типичные проблемы

  • Сертификат на другое имя — хост не попал в выпуск, открываете www. или IP.
  • Предупреждение после пересоздания CA — старый корень в системе, новый сервер; обновите доверие.
  • Порт 443 занят OpenServer/IIS — освободите или выключите лишний стек.
  • HSTS из прошлых экспериментов на этом имени — редко, но бесит; чистите состояние сайта в браузере.
Не путайте с продом. Локальный CA нельзя «перенести» на Beget как боевой сертификат. На хостинге выпускайте Let’s Encrypt заново после выкладки.

Зачем это скриптам Microscript

Проверка кабинета и форм до выкладки. Отладка платёжных колбэков на локалке через туннели (ngrok и аналоги) часто требует https. Поведение редиректов после включения SSL на проде лучше один раз увидеть локально.

Установка продукта: установка. Если https открывается, а PHP падает — это уже не сертификат: ошибка 500.

Альтернативы

Самоподписанный сертификат руками через openssl + прикрутка к Apache — рабочий путь в XAMPP/OpenServer, но дольше. mkcert — популярный вариант для произвольных стеков. В MicroServer проще штатный CA.

Про Денвер и PHP 8: замена Денвера. Когда локалка готова — выкладка: перенос, боевой SSL: SSL на сайте.

Firewall Windows

Для доступа только с этой машины правила на 443 обычно не мешают. Если открываете локальный хост с телефона в той же Wi‑Fi — это уже отдельная настройка сети и доверия сертификату на телефоне; для повседневной разработки скрипта не обязательно.

Редирект с http на https локально

Имеет смысл включить, если отлаживаете поведение «как на проде». Иначе часть ссылок в письмах и шаблонах останется http, и вы это заметите только после выкладки. В MicroServer редирект обычно завязан на список SSL-хостов. Открыли https вручную — ок; ждёте автоматический редирект — проверьте, что хост в списке и сервер перечитан.

Петля редиректов локально бывает, когда скрипт сам форсирует https, а виртуальный хост на 443 не настроен. Браузер пишет ERR_TOO_MANY_REDIRECTS. Выключите форс в настройках скрипта, почините SSL-хост, потом включите снова.

Cookie, сессии, SameSite

На https локально сессионные cookie с флагом Secure начинают сохраняться. На http их не было — «логин не держится» при переключении протоколов выглядит как баг скрипта. Очистите cookies для project.loc и зайдите один раз уже по https.

Если тестируете встроенный фрейм или отдельный фронт на другом порту — SameSite и secure-флаги могут мешать. Это уже тонкая отладка; для обычной админки Microscript достаточно одного хоста на 443.

Смешанный контент на локалке

В консоли браузера смотрите blocked:mixed-content. Часто виноваты абсолютные URL в демо-данных или в настройке «адрес сайта» с http. Поправьте URL в админке на https://project.loc и обновите кэш. Для боевого сайта та же история описана в SSL на PHP-сайте.

Несколько браузеров

Chrome/Edge берут хранилище Windows. Firefox — своё. Поставили корень CA в систему, а Firefox всё ещё ругается — импортируйте сертификат в настройки Firefox отдельно. Safari на соседней mac-машине к вашему Windows-CA отношения не имеет.

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

Конфликт портов

Skype, IIS, Docker, OpenServer любят занимать 443. MicroServer не поднимется на https, пока порт занят. В PowerShell:

netstat -ano | findstr :443

По PID поймёте процесс. Лишний стек выключите. Про конфликты стеков ещё: замена Денвера.

Связка с установкой и переносом

Ставьте скрипт сразу на том протоколе, на котором будете отлаживать кабинет. Смена http→https после наполнения демо-данными добавляет работу по URL. Установка: мануал. База при этом та же: phpMyAdmin.

Когда локальный https отлажен, на проде выпускаете нормальный Let’s Encrypt — локальный CA туда не копируется. Перенос: перенос скрипта. Если на проде после SSL белый экран — это уже лог PHP, не сертификат: ошибка 500.

Для вебхуков с внешних сервисов на локалку https alone не хватит — нужен туннель с публичным именем. Сертификат туннеля будет чужой; ваш CA MicroServer тут ни при чём. Имеет смысл помнить, чтобы не чинить «локальный SSL», когда падает ngrok.

Если замок есть, а скрипт генерит ссылки на http — поправьте «URL сайта» в админке и очистите кэш продукта, если он есть. Иначе отладка оплаты и редиректов останется вранья. Установка и первичная настройка: установка. База при смене только протокола не мигрируется; файлы те же. Хост должен быть стабильно прописан: *.loc. Стек: MicroServer.

Частые вопросы

Https на локальном хосте windows?

Локальный HTTPS нужен для cookie Secure, вебхуков и проверки SSL-редиректов.

Сколько времени занимает «HTTPS на локальном хосте Windows»?

Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.

Нужен ли отдельный сервер?

Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.

Openserver альтернатива php 8?

Разбор рядом в мануале по этому запросу. openserver альтернатива php 8

Локальный сервер windows php 8 mysql?

Разбор рядом в мануале по этому запросу. локальный сервер windows php 8 mysql

Раздел
Денвер и локальный сервер

Локальный стек Windows для отладки скриптов до выкладки на VDS.