Что такое HTTPS и SSL? Как работают защищённые сайты, простыми словами
HTTPS — защищённая версия HTTP, протокола, по которому браузеры общаются с сайтами. Он заключает каждый запрос и ответ в зашифрованное соединение по протоколу TLS (Transport Layer Security), поэтому никто между посетителем и сайтом не может прочитать или подменить отправляемое. SSL — старое название той же идеи, того протокола, который заменил TLS, поэтому люди до сих пор говорят «SSL-сертификат».
Почему HTTPS важен при создании приложений с ИИ
Каждое опубликованное приложение должно работать по HTTPS. Это не только хорошая практика:
- Браузеры этого ждут. Сайты на обычном HTTP помечаются как «Небезопасно», а некоторые возможности браузера — например доступ к геопозиции, камере и микрофону или service worker для офлайн-приложений — обычно работают только на защищённых (HTTPS) страницах.
- Входы и формы. Без HTTPS пароли, сессионные cookie и данные форм передаются открытым текстом. Любой в той же сети кафе потенциально может их перехватить.
- Платежи и сторонние сервисы. Платёжные провайдеры, вход через OAuth и многие API требуют HTTPS для адресов перенаправления и обратного вызова.
- Доверие и поиск. Посетители замечают предупреждение, а Google заявлял, что учитывает HTTPS как сигнал ранжирования.
Хорошая новость: на большинстве современных хостингов HTTPS настраивается автоматически. Вам в основном нужно понимать устройство, чтобы исправить ситуацию, когда ломается собственный домен или возникает предупреждение о смешанном контенте.
Бытовая аналогия
Отправлять данные по обычному HTTP — всё равно что отправлять открытку: каждый почтальон, который её держит, может её прочитать, и даже подменить текст.
HTTPS — это запечатанный конверт с защитой от вскрытия, и перед отправкой вы проверяете официальное удостоверение получателя. Сертификат и есть это удостоверение, его выдаёт доверенный орган (центр сертификации), который проверил, что сайт действительно управляет доменом. Шифрование — это запечатанный конверт. Удостоверение подтверждает, что вы пишете нужному адресату, а конверт защищает содержимое от посторонних.
Как работает HTTPS, простыми словами
Когда браузер открывает https://shop.example.com:
- Приветствие. Браузер подключается и сообщает, какие методы шифрования он поддерживает.
- Сертификат. Сервер присылает свой сертификат, в котором сказано «этот ключ принадлежит
shop.example.com», подписанный центром сертификации. - Проверка. Браузер проверяет подпись по доверенным ему центрам, убеждается, что сертификат не истёк, и что домен совпадает.
- Ключи. Браузер и сервер согласовывают новый секретный ключ для этой сессии, никогда не передавая его открыто.
- Зашифрованный разговор. Все запросы и ответы — страницы, данные форм, cookie — теперь передаются в зашифрованном виде.
Этот рукопожатие TLS занимает несколько миллисекунд и происходит автоматически. Посетитель видит только значок замка (или, в некоторых браузерах, нейтральный значок информации о сайте).
Что защищает HTTPS, а что нет
| Защищает | Не защищает |
|---|---|
| Данные во время передачи между браузером и сервером | Данные, когда они уже на вашем сервере или в базе данных |
| От подслушивания в публичных сетях Wi-Fi | От вредоносного или мошеннического сайта |
| От подмены страниц по пути | От ошибок в вашем приложении, например отсутствующих проверок прав доступа |
| Cookie и пароли во время отправки | От слабых паролей и утёкших API-ключей |
HTTPS шифрует содержимое запросов, включая путь страницы и строку запроса. Но имя домена, который вы открываете, обычно видно сетям на пути. Поэтому никогда не передавайте личные данные в адресе: они всё равно попадут в логи и историю браузера.
Пример: подключаем собственный домен
Допустим, вы публикуете приложение для записи и хотите разместить его по адресу book.myyogastudio.com:
- Вы добавляете DNS-запись, которая направляет
book.myyogastudio.comна ваш хостинг. См. как работают домены и DNS. - Хостинг доказывает центру сертификации, что контролирует это имя, — обычно отвечая на проверку на этом домене, — и получает сертификат.
- Хостинг устанавливает сертификат и продлевает его автоматически до истечения срока. Сертификаты намеренно короткоживущие, поэтому автоматическое продление важно.
- Посетители, которые открывают
http://book.myyogastudio.com, перенаправляются наhttps://.
Если шаг 1 сделан неверно — запись указывает в другое место или перед сайтом стоит прокси, — шаг 2 может не пройти, и посетители увидят ошибку сертификата. Это самая частая проблема HTTPS при подключении собственного домена.
Ключевые термины
| Термин | Значение |
|---|---|
| TLS | Transport Layer Security, протокол шифрования, на котором держится HTTPS. |
| SSL | Secure Sockets Layer, устаревший предшественник TLS. Название по-прежнему в ходу. |
| Сертификат | Подписанный файл, связывающий домен с открытым ключом. |
| Центр сертификации (CA) | Организация, которой доверяют браузеры и которая выдаёт сертификаты, например Let's Encrypt. |
| Проверка домена (DV) | Сертификат, подтверждающий контроль над доменом — именно такой используют почти все сайты. |
| Wildcard-сертификат | Покрывает все поддомены одного уровня, например *.example.com. |
| Смешанный контент | Защищённая страница, которая загружает часть ресурсов по обычному HTTP. Браузеры блокируют такие ресурсы или предупреждают о них. |
| HSTS | Заголовок, который велит браузерам всегда использовать HTTPS для вашего сайта. |
| Порт 443 | Стандартный порт HTTPS (HTTP использует порт 80). |
Частые заблуждения
- «Значок замка означает, что сайт надёжен». Он означает, что соединение приватно и домен совпадает. Мошенники тоже получают сертификаты.
- «HTTPS нужен только на платёжных страницах». Любая страница с входом, формой или cookie нуждается в нём — а это почти любое приложение. Используйте его везде.
- «Сертификаты дорогие». Бесплатные доверенные сертификаты — стандарт, и большинство хостингов управляют ими за вас.
- «HTTPS делает моё приложение безопасным». Он защищает соединение. Приложению всё равно нужны проверки прав на сервере, безопасное хранение секретов и проверка входных данных. См. чек-лист безопасности для приложений, созданных с ИИ.
- «HTTPS замедляет сайты». Современный TLS добавляет очень мало накладных расходов, а функции, которые ускоряют сайты, например HTTP/2, в браузерах обычно требуют HTTPS.
Исправляем типичные проблемы HTTPS
| Симптом | Вероятная причина |
|---|---|
| «Ваше подключение не защищено» | Сертификат не покрывает именно этот домен, истёк или ещё не выпущен |
Работает на www., но не на голом домене (или наоборот) | Есть DNS-запись и сертификат только для одного имени |
| Нет значка замка, «Не защищено» на некоторых страницах | Смешанный контент: изображение, скрипт или шрифт загружаются по http:// |
| Ошибка сертификата сразу после подключения домена | DNS ещё распространяется или прокси перед сайтом блокирует проверку сертификата |
Что попросить у конструктора ИИ
- «Убедись, что все изображения, скрипты и шрифты загружаются по HTTPS или относительным ссылкам — никаких ссылок
http://.» - «Перенаправляй весь трафик с HTTP на HTTPS.»
- «Устанавливай сессионные cookie с флагами
SecureиHttpOnly.» - «Используй
https://для всех адресов обратного вызова OAuth, платежей и вебхуков.» - «Мой собственный домен показывает ошибку сертификата — какую DNS-запись ожидает хостинг?»
HTTPS в Mythex
При подключении собственного домена в Mythex (функция тарифа Pro) вы добавляете CNAME-запись, которая указывает на адрес slug.mythex.ai, показанный в Mythex, нажимаете Verify, и Mythex автоматически выпускает HTTPS для домена. В документации описаны два самых частых затруднения: если DNS находится на Cloudflare, переключите запись в режим «только DNS» (серое облако), а не «проксируемая», чтобы Mythex смог выпустить сертификат; и DNS может пройти проверку раньше, чем HTTPS полностью настроен, поэтому подождите несколько минут и проверьте снова. См. собственные домены в документации и наше руководство как подключить собственный домен.
Вопросы
В чём разница между HTTP и HTTPS?
HTTP передаёт данные между браузером и сайтом как читаемый текст. HTTPS — это HTTP, переданный через зашифрованное соединение TLS, поэтому люди в той же сети или на пути передачи не могут прочитать или изменить отправляемое, а браузер может проверить, что он общается с настоящим сайтом.
SSL и TLS — это одно и то же?
TLS — современный преемник SSL. Все версии SSL устарели и небезопасны, а сегодняшние защищённые сайты используют TLS. Люди по привычке до сих пор говорят «SSL-сертификат», но сертификаты используются вместе с TLS.
Значит ли значок замка, что сайт безопасен?
Нет. Значок замка означает, что соединение зашифровано и сертификат соответствует домену. У мошеннического сайта тоже может быть действительный сертификат. Он говорит о том, что никто не может подсмотреть соединение, а не о том, что владельцу сайта можно доверять.
Нужно ли платить за SSL-сертификат?
Обычно нет. Бесплатные автоматические центры сертификации, например Let's Encrypt, выдают сертификаты, которым доверяют браузеры, а большинство хостинговых платформ получают и продлевают их за вас. Платные сертификаты в основном добавляют поддержку или дополнительные проверки личности.
Почему мой сайт пишет «Не защищено»?
Частые причины: сайт открыт по http:// вместо https://, сертификат истёк или не покрывает именно этот домен, либо страница загружает изображения или скрипты по незашифрованному http:// (смешанный контент).