Из HTTP в HTTPS за 10 минут. Или как сделать локальное веб приложение доступным для всех с Ngrok

Проблема c HTTP

Разрабатывая веб приложение для бота Telegram, выяснилась такая проблема: нужно было указывать защищенный https адрес для веб приложения, т.е. с запуском приложения в режиме разработки возникли проблемы.

P.S. Да, можно запустить telegram на тестовом сервере, но это не очень удобно)

Решение - Ngrok

Ngrok - одно из решений проблемы. Также может понадобиться, если вы хотите показать ваш сайт, веб приложение, API или что-то другое коллеге или не коллеге) без серверов и тд, запустив его у себя на компьютере.

Для начала нужно установить CLI утилиту и зарегистрироваться. Процесс регистрации показывать не буду, это не сложно. Установка CLI для каждой ОС немного различается, но для каждой занимает одну команду, можете посмотреть их здесь. После регистрации, нужно ввести в терминале ngrok config add-authtoken <TOKEN из личного кабинета>.

После чего достаточно ввести - ngrok http <PORT вашего приложения> и ваш проект доступен по ссылке в Forwarding(см. скриншот ниже) с любого компьютера с интернетом.

Интерфейс ngrok, после запуска
Интерфейс ngrok, после запуска

Защита публичных эндпоинтов

Если же вы НЕ хотите, чтобы ваше приложение было доступно любому человеку во всем мире, то можно воспользоваться HTTP аутентификацией:

ngrok http <PORT вашего приложения> --basic-auth 'ngrok:issecure'

Либо OAuth 2.0:

ngrok http <PORT вашего приложения> --oauth google

Использование одного домена

Если вы несколько раз запустите ngrok http <PORT вашего приложения>, заметите, что домен каждый раз разный, а это не очень решает изначальную проблему. Поэтому нужно сделать так, чтобы URL был всегда одинаковый. Решается это просто, но, к сожалению, не бесплатно:

ngrok http --domain=mycustomdomen.domen.dev 80

Конечно, Ngrok обладает более широким функционалом, чем удалось рассмотреть и, несмотря на некоторые ограничения, связанные с оплатой, является удобным инструментом для решения некоторых проблем.

11
Начать дискуссию