Как запустить dev сервер на HTTPS протоколе? Монстрячим самоподписанный сертификат с mkcert!
Вставка
- Опубліковано 21 вер 2024
- Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.dig...
Telegram: t0digital.t.me
Нередко нам нужно запустить development сервер (например, Django) на HTTPs протоколе. Что нам для этого нужно? Нам нужно сгенерировать собственный SSL сертификат, научить наш dev сервер с ним работать, а также заставить браузер нашего компьютера доверять этому сертификату. Самый простой способ сделать эти три шага - в видео!
Утилита mkcert: github.com/Fil...
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Telegram канал - t.me/t0digital
ВК - digital...
RuTube - rutube.ru/chan...
Дзен - dzen.ru/id/623...
Вот люблю подобного рода утилиты, простые как тапок, которые берут, и просто хорошо делают свое дело. Спасибо за материал. Не без скрытой рекламы пайтона, но зато прямиком из души :-) хоть пока сам и не натыкался на необходимость в https на локали
Шикарно, +1 инструмент в копилку :)
Вау, какие люди)
Сам обычно в таких ситуациях пользовался ngrok - завел бесплатный акк, и на сгенеренном домене хоть весь день сиди. Но эта штука явно поудобнее будет, спасибо за видео!
Как всегда полезно, и по делу. Алексей продолжает радовать! Спасибо!
Спасибооо!
С каждым твоим видео всё ближе к Python and Django и все дальше от PHP and Wordpress>>>
Только начал погружаться в Django, и это видео, еще больше, показывает, насколько я на верном пути) Спасибо за советы
Да, отличная утилита. Помню как раньше прыгал с бубном. Благодарю за видео и опыт.
nginx reverse proxy (ровно также как это делается на реальном сервере) + самоподписный сертификат. А в браузере один раз нажать "Открыть всеравно". Не так много танцев.
Спасибо! Отличный ролик
Спасибооо!
Спасибо дорогой 🙏 обязательно воспользуюсь ))
Как всегда очень полезный ролик, спасибо, лайк!
офигеть, это работает, вчера весь вечер убил на поиск решения, а сегодня утром сижу в базнадеге подперев локтем морду, без особой надежды на видосик в предлогах тык... и снова праздник к нам приходит)) Огромное спасибо!
Круто! Спасибо за очень полезный пример с SSL. Как раз для Django проекта хотел SSL замутить на локальной сервере :))
Лаконично и доступно, спасибо
Спасибо за ролик!
Я реально кайфанул. Большое теб спасибо за видео.
Интересное и полезное видео. В следующем хотелось бы увидеть обзор pipenv
# UA-cam-->Диджитализируй-->Кайфанул!
Йеее!
Спасибо, только ваше видео мне помогло. Все по полочкам! Много пробовал информацию на других ресурсах, но только здесь все четко получилось) кайфонул)
Рад, что полезно:)!
Огромное спасибо
Кайфанули конечно! Спасибо!
Спасибо!
Классный ролик! А можешь записать ролик про сертификаты, почему кто-то их покупает за бешеные деньги, а кто-то Certbot использует бесплатный. В чем разница, и стоит ли это того? Эта история многим голову ломает, и многие не выдерживают и покупают сертификаты))
да тут тема простая, у платных сертификатов есть страховка (и тем сертификат дороже, чем страховая сумма больше) в случае причиненного ущерба в случае взлома сертификата.. если конторам есть что терять - то тут без вариантов - платный и с достаточной защитой...
@@arielvologО как! Спасибо за инфу
круто, я генерил через openssl, получается огромная команда
спасибо большое!!!
Спасибо за mkcert. По идее с дотнетом работать должно. Надо проверить, а то android даже для localhost требует ssl
Отличный ролик, как и всегда! А будут ли ролики по работе с метриками(prometeus, grafana)?
Возмооожно!
Как всегда крут))!!!!
Top
Спасибо, отличная вещь
Лучший
ЭТО ПРОСТО БОМБА!
Клёво!
Буду!
Случайно два раза лайкос влупил)
На второй раз он отлупляется.. лупи третий ;)
Спасибо! Сам по себе материал интересный. Но я пока не понимаю зачем мне нужен https для разработки? Что это меняет? Это ведь можно сделать на боевом хостинге, а разрабатывать спокойно под http. Другими словами у меня не было кейсов где я бы уперся в ограничение что мне нужен https для разработки. Может подскажете когда это нужно? В ролике про это ничего.
Иногда фронтенд технологии работают только при работе на HTTPs протоколе
@@t0digital аа .. вот где собака зарыта )
@@t0digital вот тебе в ролике стоило об этом и сказать, а желательно и показать, что именно на фронте просит https. У меня тоже сразу вопрос возник нахрена козе баян)
@@nucluster джаваскриптовый getusermedia api, например, требует https. Да много чего трубует уже https.
Тот же андроид при разработке на react-native ни в какую не хотел отсылать запрос на http
опааааа, как всегда годнота)
Кайфанул :-) Спасибо
Подобный вариант поддержки хттпс для штанги, даже с теми же библиотеками django extensions и т.д., был расписан в книге Django 3 by Examples (Antonio Mele), если не ошибаюсь в главе 4 или 5.
Спасибо! Надо пробежаться по ней, можт ещё что хорошего есть:)
В этой книге действительно говорится про Django extensions и runserver_plus. Но главная фишка - это именно утилита mkcert, о которой в книге не упоминается. runserver_plus умеет генерить сертификаты и без mkcert, но они не принимаются современными браузерами. Можете провести эксперимент. Целая морока заставить браузер их признать. А mkcert создает доверенный центр на локальном компьютере, который все браузеры принимают без вопросов. Как-то так.
@@Tenundor
Advanced -> Process to localhost (unsafe)
Далее браузер признает его до перезапуска. 2 кнопки это морока?
Вот сейчас все синьоры помидоры посмотрят видео, и попрут на собеседованиях спрашивать "как можно развернуть джанго сервер с доверенными сертификатами на локальной машине?" каждого второго джуна :)
А они сразу на UA-cam и поймут откуда вопросы берутся😁 круговорот в природе
Спасибо за идею использовать localhost вместо ip. Совсем забыл, что его как доменное имя можно использовать
Спасибо. Как всегда интересно. Когда лучше использовать Django, а когда Flask?
Заехали таки на ohmyzsh))
В принципе, полезно, но у меня есть dev-сервер и он не локалхост, так что в доверенные ЦА в браузере его в любом случае руками добавлять придётся... А так да, давно уже пора уже на https переползать, пусть и вся та автоматизация, которую пишу, исключительно внутрисетевая. Осталось побороть свою лень! ;)))
Не локалхост, а что? Это может быть любой другой домен. Локалхост просто пример домена
@@t0digital, я не про домен. ) На моём компе только пайчарм, всё остальное крутится на дев-сервере, с ним я работаю удалённо, т.к. не всегда за одним и тем же компом сижу. На сервере браузеров нет (там вообще... планета Шелезяка), некуда сертификат добавлять. ;)
@@ВалерийКнязьков-л4ч а, понял, это да:)
Кажется, то, что надо. Но есть вопросы.
В видео не показано, как с андроида такой сайт запустить. То есть, что если это не localhost
Для твоей задачи кажется лучше ngrok заюзать, проще будет чем с этими сертификатами возиться
Спасибо. Но назрел вопрос: зачем?) Когда это может пригодиться?
Искал этот вопрос, но отвечать никто не спешит
Ответил несколько раз в комментах под этим видео
добрый день. подскажите пожалуйста, как вы так быстро работаете с pip(автодополнение названия утилит) и в целом в zsh? какие-то допы стоят? поделитесь)
кайф!
Спасибо за видео! Хотел спросить используете ли вы Websocket на проектах? Если да, то можете, пожалуйста, осветить этот процесс и в частности как на продакшене можно с ним работать.
Крутяк
А эти серты от mkcert в железки пихнуть можно же? А то много их в хозяйстве с самоподписанными... или нет смысла, всё это только для одного локального браузера, и с собой "доверия" таскать нельзя?
Утилита конечно клевая если ты понимаешь, что она делает - она сократит тебе время работы. Но в основном сейчас все тупо попрут пользоваться ею, а вот как эти сертификаты на самом деле работают и как это все делать без этой утилиты - народ как не знал так и не узнает из этого видео.
Ну так этого и не заявлялось - пайтон не выучат из этого видео, джангу не выучат, Линукс не выучат и тп:)
Спасибо, отличный видос.
А подскажи где такую клавиатуру купить как у тебя спасибо?!
Я покупал в geekboards
Установить werkzeug для джанги, какая ирония))
Да:)
а с gunicorn`ном его можно использовать?)
Была у меня такая кружка на работе, специалист ИТ задел и разбил, тоска- печаль
Моя из Hoff:)
@@t0digital Моя из глобуса))))
У меня тоже была такая кружка - жена разбила, и жена и кружка теперь бывшие. Может стоить замутить клуб айтишников владельцев такой кружки?😁
А Джанго освобождённый?
Разумеется!
@@t0digital он же под замком
Здравствуйте, будет ли ещё code rewiew django?
Здравствуйте, будет
Интересно, в чем смысл разделения сертификатов на безопасные и небезопасные с точки зрения браузера, если любой небоезопасный сертификат по такой схеме можно обновить на безопасный?
Чтобы небезопасный сертификат заработал на компе жертвы, надо производить действия на компе жертвы. Если есть доступ к компу жертвы, то видимо считается, что уже всё, приплыли :)
@@t0digital ну да, тогда всё логично, спасибо 👍 👍
Вопрос❓😌
Можно будет в локальной сети зайти на этот сервер django с другого ПК по https ?
Можно, но сертификат там или не будет доверенным или надо настраивать как доверенный
Объясните, пожалуйста, какой профит от использования протокола https для разработки на локальном сервере? Спасибо!
Для некоторых фронтенд штук нужен https. Отлаживать их локально без https нельзя. Как минимум для этого
Например тест работы платежной системы, они без ssl не работают
Эм, это коммент!
Здравствуйте а не потскажете как скинут настройки на LHG LTE kit на зовотские
Надо смотреть в инструкции. Я не знаю
Если молодой человек покраситься в белый , то это будет-Sten из клипа Eminema.
Да вроде не похож)
Продемонстрированная утилита вносит изменения в доверенные ЦА, что вообще неприятно - кто знает что она там ещё может внести в ЦА.
Если на локалхост нужен https, то лучше уж ngrok или ему подобные.
имхо гонять локальный трафик в интернет тоже так себе затея
@@t0digital когда гоняешь локальный трафик в интернет:
1. Ты гоняешь его зашифрованный (по https)
2. Даже если какой-нибудь хакер заморочится и расшифрует твой локальный трафик - вряд ли ты во время разработки на дев сервере будешь пересылать реальные данные (банковские карты и т.д.) - то есть самое страшное что может случиться - это ровным счётом ничего.
А когда ты даёшь разрешение какой-то утилите вносить изменение в список доверенных центров сертификации, то страшное что может произойти - это например какой-то фишинговый сайт с левым сертификатом начнёт восприниматься твоим браузером как доверенный и как следствие увеличиться вероятность утечки каких-то важных (финансовых, персональных и т.д.) данных.
Я переживаю в 1 очередь за скорость в случае прокидывания быстрого локального трафика в медленный интернет трафик. Хочется (мне), чтобы в процессе разработки всё было быстро, и чтобы работать без интернета можно было.
@@t0digital по поводу скорости: с сегодняшней повсеместно распространённой 50 - 100 мбит/с скоростью - это вообще не проблема, разница с ngrok не ощутима.
По поводу работы без интернета - ну мы же прекрасно понимаем что такая ситуация крайне редкая когда надо поработать а доступа в инет нет и именно в этот момент нужен https. Я к тому что риск использования подобных утилит абсолютно не оправдан ни одним потенциальным кейсом использования. В наше время, когда информационная безопасность особенно на таком элементарном уровне - это must have для любого пользователя интернета, рисковать на право и на лево в погоне за «облегчением» разработки, это непозволительная роскошь.
@@ivanivanov-hl7ry слушайте, ну вот сейчас сижу на конфе и тут не скажу что офигенный интернет - его то нет, то медленный, а на неинтересных докладах поделать что-то хочется. В дороге поделать и тд. Когда работаешь строго в офисе, проблем нет, но я ж про себя говорю, для меня это важно.
Про безопасность - ну не перегибайте уж так) не верите простейшей опенсорсной тулзе, ну делайте вручную то же самое
С пайкона вещание ведётся?)
Ну да!
Ну не сказал бы что с минимальными телодвижениями
Ну не говорите)
А разве эти ошибки по модулям сам питон пишет?) Обычно он в таких моментах кидает ошибку по импорту)
Скорее всего не сам питон, да, но все равно приятно, что в питон экосистеме принято так заботиться о своих пользователях:)
А зачем нужен HTTPS на localhost?
Некоторые фронтовые JS вещи работают только при HTTPs протоколе. API getUserMedia, например
@@t0digital Понял. Спасибо за ответ.
На винду покажи, кому твой мак интересен?
Кому твоя винда интересна?
Есть такая штука ngrok
Есть, но смысл перегонять свой трафик в интернет ради такой простой задачи
Если не трудно, расскажите, где такие кейтапы питонячие нашли?)
Это прям готовая сборка, клавиатура Leopold, покупал на geekboards
@@t0digital Спасибо! Прямо сейчас их нет в наличии
@@МихаилБессараб-щ6ъ да, у них всегда мало в наличии из всего ассортимента. Можно заказать напрямую наверняка из-за границы, быстрее приедет и скорее всего дешевле.
А как получить настоящие сертификаты, это сложна?
Для продакшн - покупать или certbot или acme.sh
@@t0digital Понятно, спасибо за ответ.
А кто ещё, и на каком ресурсе воспользовался этим сертификатом, который теперь у меня в доверенных?
Ваш сертификат на локалхост действительно представляет ценность:)
@@t0digital Ааа, простите. Я не внимательно слушал.
Ngrok чем не подходит?
Например, необходимостью доступа в интернет для его работы, замедлением процесса работы - грузить трафик из интернета медленнее, чем локально. Но можно, да, судя по комментам тут много любителей ngrok. Мы тоже используем, но по прямому назначению, когда локальный сервис надо наружу вывести потестить, например, для теста интеграции с внешними сервисами, эквайрингом и тп
а если по сети обратиться по слл то фиг вам или нет?
не понял вопрос. SSL сертификат запускаемый на django dev сервере для работы по сети и нужен, не для почтовых голубей:)
А для чего все это?
Зачем нам нужен ssl сертификат на dev сервере?
Некоторые фронтенд технологии работают только с https. JS getUserMedia API и другие
А для Symfony подойдёт эта утилита?
Она просто генерит сертификаты, которым доверяет браузер - они подойдут для любого бэкенда
Ребята, зачем https на локалхосте? Нужно же разделять dev и prod инвайроменты
Некоторые фронтенд технологии требуют работы на https
@@t0digital А какая конкретно?
@@FrameBassman да много что. Voximplant телефония в браузере, например. Js Api getusermedia. Покопаться ещё можно найти много. Http небезопасный стандарт, он отмирает, думаю, что скоро его вообще выключат в браузерах, оставив только https.
@@t0digital Основная моя идея в том, что при локальной разработке не нужно защищаться от man on the middle - поэтому и https не нужен. Поэтому и инвайроменты надо разделять - чаще всего кроме https в prod инвайроменте могут использоваться какие нибудь реальные сервисы, которые в dev инвайроменте хочется эмулировать (какие нибудь кластеры БД или сторонние сервисы, к которым ходим по API).
Я согласен что часто хочется побыстрее разработать и для такой ситуации подход с генерацией https серта подходит, но постоянно что то разрабатывать так не очень хочется)
@@FrameBassman ещё раз, это не вопрос защиты от mim, это вопрос тупо возможности вести разработку локально. Запуская дев сервер на http, не всё будет работать в браузере из того, что нужно. Если вы таким стеком фронтенд технологий пока не пользуетесь - значит, вам локальный https не нужен.
пиу
Пиу-пиу!
пиу-пау)
Ngrok
Можно
Не сказал самое главное, зачем?))
Почитайте соседние комменты)