Сайтов, которые работают по старому-доброму HTTP почти не осталось. Иногда они всё еще встречаются, но когда вы переходите на них, Chrome мягко говоря впадает в истерику — «Небезопасно». Я застал ту эпоху, когда браузеры начали крестовый поход против небезопасных сайтов, и сначала я не понял, почему это так важно. А потом каак понял. И сегодня постараюсь объяснить и вам.
- Открытка, конверт и недобросовестный почтальон
- Проблема HTTP простыми словами
- Уязвимости, которые решает HTTPS
- Уязвимость №1. Перехват паролей и секретов
- Уязвимость №2. Подмена данных
- Уязвимость №3. Подмена самого сайта
- Как работает HTTPS: пошагово, высокоуровнево
- Откуда взять HTTPS?
- Способ 1: Let’s Encrypt (бесплатно, рекомендуется)
- Способ 2: Платные сертификаты
- Способ 3: Для локальной разработки
- Разрушаем популярные мифы про HTTPS
- Итого: что положить в копилку знаний
Открытка, конверт и недобросовестный почтальон
Представьте, что вы хотите отправить своей девушке письмо, содержание которого явно не предназначено для третьих лиц. Но в вашем почтовом отделении работает гоголевский Иван Кузьмич Шпекин, имеющий привычку «из любопытства» засунуть нос в чужую корреспонденцию.
Если вы напишете текст на открытке, господин Шпекин, как посредник в доставке вашего сообщения, без затруднений ознакомится с подробностями вашей личной жизни. Еще он может сфотографировать открытку, подменить ее содержание. Всё тоже самое может произойти, когда мы отправляем запросы по HTTP.
Но если вы возьмете ту же открытку, но запечатаете ее в конверт, поставив на него сургучную печать, то почтальон сможет увидеть только адрес. Внутрь ему не заглянуть, конверт не подменить (печати то у него такой как у вас нет). С некоторыми оговорками, но именно это и делает HTTPS.
Проблема HTTP простыми словами
HTTP (HyperText Transfer Protocol) — протокол, договоренность о формате сообщений с помощью которых ваш браузер общается с сервером. Клиент-серверное взаимодействие устроено просто: браузер отправляет текстовый запрос, сервер возвращает ответ.
Проблема HTTP в том, что он работает в открытую. Все данные действительно летят по сети в виде обычного текста:
POST /login HTTP/1.1
логин=вася@почта.ру&пароль=12345
И любой, кто пользуется той же Wi-Fi сетью (например, публичной — в кафе, в аэропорту, в общежитии), может перехватить эти данные. Это атака «человек посередине» (Man-in-the-Middle, MitM).
Уязвимости, которые решает HTTPS
Уязвимость №1. Перехват паролей и секретов
В кафе, за утренней чашкой латте, вы заходите на какой-то сайт по HTTP. Злоумышленник за соседним столиком включает сниффер (программу для перехвата трафика) и видит всё, что вы отправляете. Ваш пароль от почты, номер банковской карты, личные сообщения — всё как на ладони.
HTTPS решает: Шифрует весь диалог. Злоумышленник увидит только абракадабру типа 8a7d9f2c.... Расшифровать без специального ключа невозможно (если зашифровано современными методами, потребуются миллионы лет перебора).
Уязвимость №2. Подмена данных
Злоумышленник может не только подглядывать, но и менять данные на лету. Вы просите сервер: «Переведи 100 рублей моему другу». Хакер перехватывает запрос и меняет на: «Переведи 10000 рублей хакеру».
HTTPS решает: Сообщение подписано. Если кто-то изменил хотя бы один символ, подпись станет недействительной. Браузер или сервер увидят подмену и откажутся принимать данные.
Уязвимость №3. Подмена самого сайта
Продвинутый хакер взламывает Wi-Fi роутер в кафе, подменяет DNS-записи и перенаправляет вас на сайт-подделку. Вы думаете, что зашли в ВК, а на самом деле — на сайт vkontakte.ru.hacker.com. Вводите логин и пароль и теряете свою учетную запись.
HTTPS решает: HTTPS работает с сертификатами. Браузер проверяет, что сертификат сайта настоящий и выдан на имя vk.com. У хакера нет такого сертификата (его нельзя подделать — центры сертификации проверяют владельца). Браузер поднимет тревогу: «Недействительный сертификат! Не заходите сюда!».
Как работает HTTPS: пошагово, высокоуровнево
HTTPS — это тот же HTTP, но с шифрованием SSL/TLS. Вот как это работает по шагам (и без скучных подробностей)
Шаг 1. Знакомство (Handshake)
Браузер говорит серверу: «Я хочу зашифрованное соединение. Давай договоримся, как шифровать». Сервер отвечает: «Окей, вот мой сертификат и публичный ключ».
Шаг 2. Проверка сертификата
Браузер проверяет сертификат: не просрочен ли? Выдан ли доверенным центром? Подходит ли домену сайта? Если всё хорошо — браузер показывает заветный зелёный замочек возле адресной строки.
Шаг 3. Генерация общего секрета
Браузер придумывает секретный ключ для сессии, шифрует его публичным ключом сервера и отправляет. Расшифровать его сможет только сервер (для этого у него есть секретный ключ).
Шаг 4. Безопасный обмен
Теперь браузер и сервер общаются, шифруя все данные общим секретом. Хакер, даже если он оказался посередине, посередине видит только шифрованную абракадабру.
Откуда взять HTTPS?
Как вы, надеюсь, понимаете, HTTPS — действительно маст хэв. И если раньше это было сложно и дорого, то теперь — бесплатно и легко.
Способ 1: Let’s Encrypt (бесплатно, рекомендуется)
Автоматический сервис, который выдает бесплатные сертификаты на 3 месяца. Настраивается в пару команд через certbot. Большинство хостинг-провайдеров поддерживают настройку в пару кликов внутри админки.
Способ 2: Платные сертификаты
От $50 до $500 в год. Нужны для особых случаев. Например, когда вы работаете с персональными данными клиентов, их деньгами или хотите получить гарантии. В большинстве случаев это избыточно.
Способ 3: Для локальной разработки
На localhost можно использовать самоподписанный сертификат. Но браузер будет ругаться (но мы, разработчики, на ругань браузера уже не реагируем). Например, в Vite все делается через простое подключение плагина @vitejs/plugin-basic-ssl.
Разрушаем популярные мифы про HTTPS
Миф 1: «HTTPS медленный»
Раньше — да, потому что шифрование требовало ресурсов. Сейчас процессоры мощные, разница в скорости — 1-5%. Это не заметно. А вот уровень безопасности выше в разы.
Миф 2: «HTTPS нужен только для сайтов с платежными формами»
Правда: нужен для любого сайта, где есть хотя бы одна форма отправки данных.
Миф 3: «Если у меня простой сайт-визитка, я не интересен хакерам»
Правда: хакеры не целятся конкретно в вас. Они сканируют всю сеть и атакуют всех подряд автоматически. Отсутствие HTTPS — незапертая входная дверь.
Миф 4: «HTTPS полностью защищает от взлома»
Правда: защищает только от атак «человек посередине». Если хакер взломал сам сервер, HTTPS поднимает лапки. Но это уже совсем другая история.
Итого: что положить в копилку знаний
- HTTP — это открытка. Все ваши данные, которые гуляют по сети, видят все
- HTTPS — это запечатанный конверт. Шифрование, проверка сертификата, защита от подмены
- Зеленый замочек — признак того, что сайт безопасен. Красный или перечеркнутый — сигнал тревоги, бегите
- Любой современный сайт обязан быть на HTTPS. Это уже не опция, а стандарт
- Бесплатный сертификат от Let’s Encrypt — норм для 99% сайтов. Платить за HTTPS не нужно
И запомните главное правило: никогда не вводите пароль на сайте, у которого нет зеленого замочка. Даже если вам кажется, что это ваш университет, банк или знакомый с 90-х годов прошлого века интернет-магазин.
Желаю успехов!







