Как открыть 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, нажми первую иконку в левом меню, затем кнопку +.

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

Нажми «Создать туннель».
Шаг 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-порт