Статья для тех кто прикупил сертификат ssl, но не может им полноценно пользоваться из-за ваших старых ошибок на сайте.
Иногда возникает следующая ситуация: вы заказали доверенный SSL сертификат, прошли проверку центром сертификации, установили сертификат на сервер. Все сделали верно, но при попытке перейти на ваш ресурс, браузер выдает ошибку: «Не удалось загрузить сайт, заблокирована загрузка смешанного активного содержимого». Или же, как вариант, веб-сайт загружается, но вместо закрытого замка в адресной строке браузер показывает желтый треугольник и сообщает о том, что соединение зашифровано только частично. Причина этих проблем – смешанное содержимое или смешанный контент (в английском варианте — mixed content) на вашем сайте.
Что же представляет собой смешанный контент? И, самое главное, как от него избавиться?
Что такое смешанное содержимое?
Все мы знаем, что при посещении веб-сайта, на котором клиент планирует ввести какие-либо личные данные, будь-то логин и пароль, ФИО, электронный или простой адрес, номера кредитных карт и прочее, следует обращать внимание, защищена ли эта страница SSL сертификатом. На это указывают некоторые визуальные признаки:
- URL-адрес веб-сайта начинается с расширения https, а не http
- В адресной строке браузера отображается иконка закрытого замка (чаще всего зеленого цвета)
- Хорошо, если на сайте установлена печать защиты или Site Seal (но ее добавление опционально, поэтому ее отсутствие не всегда говорит об отсутствии SSL сертификата)
- Если на сайт установлен SSL сертификат с расширенной проверкой, зеленая строка будет содержать и название компании-владельца домена на зеленом фоне.
Тем не менее, в некоторых случаях возникают проблемы с отображением содержимого сайта при наличии смешанного содержимого: например, в Google Chrome в адресной строке вместо зеленого замка показывается замок, перекрытый желтым треугольником. В Mozilla Firefox вместо замка показывается треугольник с восклицательным знаком.
Кроме того, в окне браузера может появляться сообщение о том, что веб-страница содержит смешанное содержимое и информация отображается частично, либо полностью заблокирована и не отображается вообще. В каждом браузере сообщение о смешанном контенте может показываться по-разному, но суть одна – пользователь получает предупреждение и не сможет просмотреть все содержимое страницы, что, соответственно, оказывает негативное влияние на конверсию сайта в целом.
Internet Explorer:
Internet Explorer сообщает, что отображено только безопасное содержимое сайта, предоставленное через безопасный протокол https. У вас есть возможность отобразить весь контент страницы нажатием кнопки “Show all content” («показать все содержимое»).
Google Chrome:
Браузер Google Chrome пишет, что данная страница содержит скрипт из непроверенного источника. Вы можете загрузить все содержимое сайта, нажав на ссылку “Load unsafe content” (“Загрузить небезопасное содержимое)”.
Mozilla Firefox:
Mozilla Firefox также блокирует небезопасное наполнение, однако информирует, что большинство веб-сайтов продолжают работать, несмотря на заблокированное содержимое.
Если вы видите одно из этих предупреждений, это значит, что, несмотря на установленный SSL сертификат, соединение не может быть полностью защищено, так как некоторые файлы загружается по http-каналу. Соответственно, эта информация может быть просмотрена или изменена третьими лицами. Поэтому на сайтах со смешанным содержимым не рекомендуется оставлять личную информацию, такую как, например, банковские и паспортные данные, логины и пароли, адреса и так далее.
Почему смешанное содержимое блокируется?
По сути, смешанное содержимое или смешанный контент – это смешанные скрипты протоколов https и http. Дело в том, что если не все наполнение сайта состоит из файлов, загружаемых по протоколу https, и на странице имеется часть контента, загружаемого по протоколу http, то такое соединение может быть защищено только частично. В результате, казалось бы безопасное соединение является не совсем безопасным.
Почему же возникают проблемы со смешанным содержимым, и к каким последствиям может это привести?
SSL сертификат гарантирует защищенное https-соединение. Соответственно, при установленном SSL сертификате страницы веб-сайта должны загружаться только по протоколу https. Если использовать на безопасном сайте также части контента по http, появляются пробелы в безопасности соединения между веб-сайтом и Интернет пользователем. Следовательно, мошенники или просто третьи лица, заинтересованные в получении конфиденциальных данных, могут заменить части сайта с http на преднамеренно измененную информацию и тем самым скомпрометировать веб-страницу. Заполучив личную информацию посетителей, ее могут использовать в своих корыстных целях.
Каким бывает смешанный контент?
Существует два вида смешанного содержимого: активное и пассивное. Разница между ними состоит в том, как мошенник может использовать ту или иную часть страницы и какими могут быть последствия для пользователей. Давайте разберемся подробнее:
Пассивное смешанное содержимое
Пассивное смешанное содержимое (от англ. Mixed passive content или Mixed display content) – часть страницы, которая отображается на сайте, несет в себе какую-либо информацию, но напрямую не влияет на функционирование сайта. Пассивный смешанный контент появляется, когда на защищенной веб-странице загружается картинка, видеозапись, звуковой файл или объект через http протокол. Мошенники могут заменить соответствующую часть контента дезориентирующей информацией, содержащей cookie-файлы, и таким образом смогут собирать информацию о перемещении пользователя на страницах. Картинку на сайте потенциально могут заменить другим изображением, содержащим неверную информацию или какой-либо призыв к пользователю.
Большинство браузеров не блокируют полностью все содержимое пассивного типа, а предупреждают о присутствии такой информации на сайте в виде специального знака , как это было показано на примерах выше. Такой вид смешанного содержимого встречается очень часто на различных веб-сайтах.
Предупреждение о смешанном пассивном содержимом на Google Chrome выглядит оранжевым значком.
Виды пассивного смешанного контента:
src атрибут audio — звуковой файл
src атрибут img — изображение
src атрибут video — видеозапись
субресурсы object — запрос каких-либо файлов веб-сайта по http
Активное смешанное содержимое
Активное смешанное содержимое (от англ. Mixed Active Content) – куда более опасный тип смешанного контента. В данном случае через небезопасный http протокол загружаются файлы, которые могут вносить изменения на странице, загружаемой по https-соединению, и потенциально украсть личные данные, вводимые пользователями. Таким образом, вместе с описанными выше рисками, которым подвергает безопасность страницы пассивный контент, активное смешанное содержимое влечет за собой и другие, более опасные угрозы. Так, с его помощью мошенник может перехватить запрос на http контент или изменить ответ сервера, добавив в него вредоносный код JavaScript, который в свою очередь может украсть имя пользователя и пароль, заполучить личные данные или попытаться установить вредоносное ПО на операционной системе пользователя.
Большинство браузеров блокирует активное смешанное содержимое. К нему относятся следующие http запросы:
data атрибут object — выбор файла, который отображается на странице
href атрибут link — исходящие ссылки
src атрибут script — файл скрипта
src атрибут iframe — файл, отображаемый во фрейме
атрибут XMLHttpRequest – объект, с помощью которого JavaScript делает http-запросы к серверу, не перезагружая страницу
Чем опасен смешанный контент?
Во-первых, подобное соединение (когда часть информации передается по незашифрованному протоколу) нельзя считать абсолютно безопасным, страница сайта так или иначе остается уязвимой. Даже если мошенники не смогут получить доступ к персональным данным, они смогут, например, отслеживать действия на сайте и использовать их в своих целях.
Во-вторых, даже если на сайте установлен SSL-сертификат, страницы с такой ошибкой помечаются браузерами как небезопасные. Естественно, это напрямую влияет на отношение пользователей к вашему сайту и на вашу репутацию - вряд ли кто-то делать покупки на сайте, владелец которого так халтурно позаботился о безопасности персональных данных.
Наконец, проблема со смешанным контентом на сайте может привести к проблемам в SEO (особенно в тех случаях, когда злоумышленникам удается внедрить вредоносный код).
Но главная причина, почему вам стоит уже сегодня решить проблему смешанного контента, касается нововведения от компании Google. О нем расскажем ниже.
В 2020 году Chrome начнет полностью блокировать смешанный контент
Продолжая свою политику по обеспечению безопасности в интернете, компания Google анонсировала, что после выхода новой, 80-й версии Google Chrome в январе 2020 все элементы, которые грузятся по небезопасному протоколу (например, музыка и видеоролики), будут блокироваться.
Напомним, что уже сейчас Chrome блокирует смешанный контент, касающийся скриптов и iFrame. А уже через несколько месяцев любой незащищенный, передаваемый по HTTP контент просто не будет отображаться пользователям. Поэтому если на вашем сайте есть проблема со смешанным контентом (или у вас вообще не установлен SSL-сертификат), мы рекомендуем уже сейчас подумать о том, как ее решить.
Как исправить смешанное содержимое?
После установки SSL сертификата, необходимо обязательно проверять, правильно ли работает веб-страница, корректно ли настроена переадресация, все ли ссылки внутри сайта открываются по протоколу https. Для проверки смешанного контента рекомендуем использовать браузер Google Chrome.
- В первую очередь обратите внимание, как отображается Ваш URL-адрес. Если замочек перед адресом зеленый – проблем с https-соединением нет. Если он перекрыт желтым треугольником, скорее всего, речь идет как раз о смешанном содержимом.
- В окне кликните правой кнопкой мыши и перейдите по ссылке «Просмотр кода элемента». Это же можно сделать, нажав комбинацию клавиш Ctrl+Shift+I.
- Внизу окна браузера появится окно, перейдите в последнюю вкладку Console («Консоль»). В ней будут перечислены проблемные ссылки после предупреждения «Mixed Content: и далее перечисление файлов, которые загружаются по протоколу http», как на примере ниже:
Все, что Вам нужно сделать, — это заменить все http-ссылки на https. Для того, чтобы избежать появления смешанного содержимого при переходе на https, рекомендуем изначально все ссылки внутри сайта оформлять как динамические. Тогда при переходе на https-соединение, они автоматически будут меняться на https-ссылки.
Смешанное содержимое
И так, когда человек заходит на сайт по протоколу HTTPS, его соединение с веб-сервером шифруется с помощью TLS и защищено от различных атак и перехватчиков. В случае если на странице, переданной по HTTPS, содержит какой либо контент, передаваемый по HTTP, то соединение считается частично зашифрованным: потому, что все что передаётся по HTTP, можно перехватить и изменить, следовательно такое соединение уже не защищённое. И именно такие страницы называются страницами со смешанным контентом (содержимым).
Типы смешанного содержимого.
Есть 2 группы смешанного контента: Пассивный (отображаемый) и Активное содержимое. Разница между ними заключается в уроне, который может понести сайт в случае перехвата и изменения в процессе передачи.
Так вот пассивный смешанный контент, это по сути изображения (аудио, видео) , которые вы получаете по http с других источников, и если их перехватят, максимум смогут поменять картинку (видео, аудио), на порнобанер к примеру, вашему сайту это урон по идее не нанесет, но вот пользователям думаю будет не очень приятно.
А вот активный смешанный контент (это скрипты, фреймы), несет уже борее серьезные риски. Здесь уже хакеры могут украсть личные данные, перенаправить пользователей на небезопасный сайт и т.д.
Как исправить страницу с заблокированным содержимым и что может произойти если не исправить.
Сейчас практически все самые популярные браузеры по умолчанию блокирует активное смешанное содержимое.
И вот если ваш сайт работает по протоколу HTTPS, а весь его активный контент (ну или часть его), отправлен по HTTP, то он будет заблокирован. А от сюда вытекает следующее, у вас отвалятся слайдеры, выплывающие формы и т.д. в общем все что работает за счет скриптов и ваш будет работать неправильно. А на счет пассивного контента — он пока что загружается по умолчанию, но есть одно но, любой пользователь может заблокировать его в настройках браузера, а то не есть гуд!
В общем, вся суть заключается в следующем, раз вы не поленились перейти на https, то и не поленитесь избавится от смешанного контента!
Как исправить сайт
Самое адекватно решение — перевести весь контент сайта и все его запросы на HTTPS.
В случае с картинками с других ресурсов, можно проверить можно ли их получить по https, если да то просто сменить ссылки, если нет то скачать их с тех сайтов и залить к себе на сервер, ну и соотвественно сменить путь, да и со скриптами можно поступить также). Самое правильное, простое и верное. Обычно помогает. Не пишите никогда картинки с чужых сайтов, пишите только относительные ссссылки к вашему сайту и все будет ОК.
По поводу всех ссылок, тут можно поступить по разному -заменить в ссылках протокол с http на https, либо сделать ссылки относительными, вот так:
<script src="//site.ru/script.js" type="text/javascript"></script>
На счет относительных ссылок, есть одно но, тут браузер сам выбирает протокол, в вашем случае он будет выбирать https, если то возможно, а вот если невозможно, то запрос пойдёт по HTTP, и у вас снова старая проблема)
Как быстро найти и исправить смешанное содержимое
Вариант 1й. Можно использовать сервис SSL-check, он проверит ваш сайт на наличие HTTP запросов.
Вариант 2й. Через консоль браузера, Гугл хром или Мозилы, мне больше нравиться гугл (я пошел этим путем). Как искать контент данным способом, показано в видео ниже.
И так вы нашли смешанный контент, все круто, в случае с картинками все достаточно просто, посмотрел что за картинка, нашел ее на сайте и изменил. В случае со скриптами все гораздо сложнее, особенно если у вас стоит какой нибудь движок типа того же wordpress с кучей включенных плагинов, вы же не знаете (97% пользователей обычно не знают) какой плагин какие скрипты подключает, а как узнать?
Вбил название скрипта, он про шерстил все папки сайта, плагинов, тем и т.д. и показал файлы в которых они подключены, следовательно заходишь в них и правишь протокол (лучше предварительно проверить в браузере, можно его получить с того же сайта но по https, если нельзя можно его от туда скачать и залить к себе и прописать новый путь получения). Если у вас более убогий файловый менеджер, тогда можно скачать весь сайт на компьютер, и проделать такой же поиск по файлам к примеру при помощи NOTEPAD++.