ProximaMPProximaMP

Как открыть localhost в интернет по HTTPS

Сайт или API работает у тебя на http://localhost:3000, а нужен снаружи и обязательно по HTTPS: платёжка шлёт вебхук, OAuth-провайдер не принимает http://, заказчик хочет посмотреть с телефона. Разберём, как открыть localhost в интернет по HTTPS — с валидным сертификатом и без единой правки в приложении.

Почему именно режим HTTPS, а не TCP

Веб-сервис можно вывести наружу и обычным TCP-туннелем — но тогда снаружи он будет отдаваться по http://, со всеми вытекающими:

  • браузер помечает страницу как «Не защищено»;
  • Service Worker, геолокация, камера, микрофон и вообще всё, что требует secure context, не работает — значит и PWA не проверить;
  • OAuth-провайдеры не принимают http:// в redirect URI;
  • платёжные системы и мессенджеры шлют вебхуки только на HTTPS.

Режим HTTPS снимает это целиком: публичный адрес туннеля отдаётся по HTTPS сразу.

Валидный сертификат — из коробки

Сертификат уже выпущен на домен ProximaMP и живёт на нашей стороне. Тебе не нужно:

  • выпускать и продлевать сертификат через Let's Encrypt или certbot;
  • поднимать локальный CA через mkcert;
  • городить самоподписанный сертификат и уговаривать браузер его принять;
  • вообще что-либо менять в приложении.

Твой сервис как отдавал обычный HTTP на localhost, так и отдаёт. TLS завершается на узле ProximaMP: снаружи приходит настоящий https:// с замком в адресной строке, внутрь твоему приложению приезжает привычный HTTP. Локальный HTTP превращается в HTTPS без единой строчки кода — это и есть главный смысл режима.

Для чего это нужно

  • Вебхуки. Stripe, YooKassa, GitHub, Telegram — все требуют HTTPS-адрес. Вместо деплоя на тестовый стенд ради одной проверки отдаёшь адрес туннеля.
  • OAuth и SSO. Redirect URI с http:// провайдеры отклоняют; адрес туннеля подходит как есть.
  • PWA и Service Worker. Работают только в secure context, на http:// их не проверить — кроме самого localhost, а с телефона это уже не localhost.
  • Показать работу. Заказчику, дизайнеру, тестировщику — без выкатки на стенд.
  • Проверка с телефона. Открыл адрес на реальном устройстве — и смотришь свою локальную сборку.

Как открыть localhost по HTTPS

Шаг 1. Запусти свой сервис

Дев-сервер, бэкенд, что угодно — главное, чтобы он уже слушал локальный порт. Запомни номер: 3000 у Next.js и Create React App, 5173 у Vite, 8000 у Django, 8080 у многих Java-приложений.

Шаг 2. Открой экран «Туннели»

Запусти ProximaClient, нажми первую иконку в левом меню, затем кнопку +.

Экран «Туннели» в ProximaClient

Шаг 3. Заполни окно «Новый туннель»

  • Название — например «Dev» или имя проекта.
  • Протокол — выбери HTTPS.
  • Локальный порт — порт твоего сервиса, например 3000.
  • Локация — «Авто» подойдёт.

Окно «Новый туннель» с выбранным протоколом HTTPS

Нажми «Создать туннель».

Шаг 4. Открой адрес

В карточке туннеля появится блок «Ваш адрес · HTTPS» с готовой ссылкой вида https://archi.proximamp.com:30121 и подписью, на какой локальный порт она ведёт. Жми «Копировать» и открывай в браузере — замок в адресной строке будет на месте сразу, никаких предупреждений.

Адрес выдаётся с портом — что с этим учесть

Публичный адрес выглядит как https://узел.proximamp.com:30121: домен плюс внешний порт, который назначается автоматически. Для браузера, вебхуков большинства сервисов и OAuth это обычный валидный URL — порт в HTTPS-адресе допустим.

Но есть сервисы, которые принимают вебхуки только на стандартных портах. Самый известный пример — Telegram Bot API: его setWebhook работает с портами 443, 80, 88 и 8443, и произвольный порт он не примет. Если упёрся в такое ограничение, смотри блок «Свой публичный порт» в окне создания — на платном тарифе внешний порт можно закрепить; какие порты доступны на каком тарифе, смотри на странице ProximaTunnel.

И помни, что без закрепления адрес меняется при пересоздании туннеля — вебхук у провайдера придётся прописать заново.

Если приложение отдаёт ссылки с http://

Твой сервис не знает, что снаружи он доступен по HTTPS: до него доходит обычный HTTP. Фреймворки, которые генерируют абсолютные URL — редиректы, ссылки в письмах, OAuth callback, — могут подставить http:// и сломать переход.

Лечится настройками самого приложения: задать базовый URL явно (APP_URL, NEXTAUTH_URL, SITE_URL — как называется в твоём стеке) и указать в нём адрес туннеля. Это настройка приложения, в туннеле менять ничего не нужно.

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

Нужно ли покупать сертификат? Нет. Сертификат уже выпущен и обслуживается на стороне ProximaMP.

Чей это сертификат? Домена ProximaMP, на котором выдан адрес туннеля.

Можно ли подключить свой домен? Пока нет — адрес выдаётся на домене ProximaMP. Поддержка своих доменов в разработке.

Нужно ли настраивать TLS в моём приложении? Нет. Приложение продолжает работать по HTTP на localhost.

Будет ли предупреждение браузера? Нет — сертификат валидный, это обычный HTTPS-адрес.

Подойдёт ли для продакшена? Это инструмент для разработки, демо и тестирования. Для боевого сайта нужен нормальный хостинг: туннель живёт ровно столько, сколько запущен клиент на твоём ПК.

Открой свой localhost

Скачать ProximaClient для Windows → — стартовый тариф бесплатный, HTTPS-адрес получишь за пару минут.

Ещё по теме: как открыть локальный порт в интернет · как открыть TCP-порт

Все статьи