Из 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(см. скриншот ниже) с любого компьютера с интернетом.
Защита публичных эндпоинтов
Если же вы НЕ хотите, чтобы ваше приложение было доступно любому человеку во всем мире, то можно воспользоваться 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 обладает более широким функционалом, чем удалось рассмотреть и, несмотря на некоторые ограничения, связанные с оплатой, является удобным инструментом для решения некоторых проблем.