При посещении некоторых веб-сайтов по защищённому протоколу SSL/TLS "Google Chrome" может выдавать "На этой странице есть небезопасное содержание.", IE может надоедать сообщением "Отображать только безопасное содержимое веб-страниц".
"Google Chrome" и "Internet Explorer" являются основными веб-браузерами, которые надоедливо препятствуют просмотру веб-сайтов по защищённому протоколу SSL/TLS если на них есть какие-либо элементы загружающиеся со сторонних сайтов да ещё и не по безопасному протоколу. Такими элементами могут быть файлы изображений (картинки, графические баннеры), мультимедиа файлы (музыка, видео, флэш), различные сценарии JavaScript, новостные фреймы и прочее...
Веб-браузеры Opera и Firefox подобными заморочками не страдают по умолчанию и просто тихонько себе меняют статусную иконку в адресной строке, кликнув по которой при желании можно почитать дополнительные подробности.
Кому-то нравится "Google Chrome", кому-то "Internet Explorer" и здесь мы расскажем как подавить надоедливые сообщения, которые мешают просмотру HTTPS (SSL/TLS) версий веб-сайтов на которых присутствует (подгружается) стороннее содержимое, но для начала немного теории о SSL/TLS шифровании.
Как работает HTTPS (SSL/TLS)
HTTPS является расширением протокола HTTP, которое использует SSL или TLS поверх HTTP. Для использования HTTPS по умолчанию выделен URL префикс https:// и 443 порт на сервере.
Когда начинается обмен зашифрованными данными между браузером клиента и веб-сервером? Порядок работы HTTPS (SSL/TLS) примерно следующий:
- При открытии страницы с префиксом https:// браузер запрашивает у веб-сервера идентификационную информацию, на сервере уже должен быть установлен SSL сертификат;
- Когда сервер вернул идентификационную информацию, браузер в свою очередь подтверждает её подлинность в автоматическом режиме, с помощью предустановленного в самом браузере списка доверенных центров сертификации, или же в ручном режиме если SSL сертификат самоподписной (пользователь должен дать согласие на продолжение просмотра страницы), после чего докладывает серверу о своём решении (своего рода SSL-рукопожатие) согласен на обмен шифрованными данными или нет;
- Сервер в ответ высылает виртуально подписанное (с помощью открытого ключа) соглашение, которое даёт возможность браузеру начать закодированную передачу данных с помощью этого самого соглашения (открытого ключа).
Только после успешного выполнения всех указанных выше пунктов возможно начало обмена зашифрованными данными между браузером и веб-сервером. Если другими словами, то шифрование веб-форм и прочих передаваемых данных станет возможным только после того, когда сайт в браузере будет открыт с префиксом https://. Для примера: если мы открыли страницу сайта по обычному http:// протоколу и вводим свои данные (логин/пароль) для авторизации на сайте, а в форме "<form action="https://..." ... >" указано, что они должны быть отправлены на защищённый адрес, то в таком случае есть вероятность того, что они будут отправлены в открытом виде.
Немного про SSL сертификаты
Не вникая глубоко в технические подробности скажем, что SSL сертификаты для веб-сервера есть платные и бесплатные - первые подписанные доверенным центром сертификации, вторые так называемые самоподписные (self-signed).
Разница между ними лишь только в том, как Ваш браузер к ним относится - первым браузер доверяет практически безоговорочно, вторым у браузера нет доверия и он предлагает пользователю самому решить продолжать ли просмотр данного сайта (ака кнопка "Продолжить всё равно") или нет.
Слабое доверие, или вовсе его отсутствие, к self-signed SSL сертификату никак не отражается на безопасности передачи данных - основная разница только лишь в том, что тот платный из-за поручительства третьей стороны и ею же подписан, а второй бесплатный создан и подписан самостоятельно.
Например система электронных платежей WebMoney уже много лет для своих сервисов использует преимущественно self-signed SSL сертификаты!
Лучше (безопаснее) пересылать данные серверу по защищенному каналу с помощью self-signed SSL сертификата, чем отправлять их по сети Интернет в открытом виде!
"Отображать только безопасное содержимое веб-страниц" в IE
"Internet Explorer" на множестве сайтов может довести пользователя до состояния бешенства постоянно выдавая баннер с вопросом "Отображать только безопасное содержимое веб-страниц", на который мы постоянно должны отвечать "Нет" в том случае, если хотим загрузить сторонние элементы, а как ранее упоминалось это может быть что угодно, от ЦСС стилей до графических и мультимедиа файлов без который работа с сайтом не будет полноценной.
Для того чтобы в IE убрать примелькавшуюся мессагу "Отображать только безопасное содержимое веб-страниц" есть два варианта:
- Изменить свойства безопасности для всей зоны "Интернет";
- Изменить свойства безопасности для зоны "Надёжные узлы" и по мере необходимости добавлять туда адреса веб-сайтов, которым мы полностью доверяем.
Второй вариант является более предпочтительным. Для этого сначала сменим настройки для зоны "Надёжные узлы": «Сервис — Свойства обозревателя — Безопасность — Надёжные узлы», нажимаем кнопку «Другой...», в появившемся окне находим секцию «Разное - Отображение разнородного содержимого - Включить».
Теперь в зону "Надёжные узлы" добавим доверенный узел и снимем (узлы то у нас надёжные) там галку "Для всех узлов этой зоны требуется проверка серверов (https://)":
Теперь при посещении доверенного узла нам больше не будет мелькать надоедливая мессага, а внизу браузера мы будем видеть зелёную галку и надпись "Неизвестная зона (смешанная)".
"На этой странице есть небезопасное содержание." в "Google Chrome"
"Google Chrome" и "Comodo Dragon" родственники - построены на том же Chronium, а поэтому всё о "Google Chrome" практически в равной степени относится и к "Comodo Dragon". Вот как например может выглядеть предупреждение о содержании разнородного содержимого на нашем же сайте:
В предупреждении сказано, что соединение зашифровано, но страница содержит сторонние элементы и ресурсы, которые не являются безопасными, что говорит о загрузке файлов со сторонних сайтов не по протоколу https://, а через обычный http://.
Например в нашем случае это файлы стилей, шрифты и изображения с сайта static.remoteshaman.com и dl.dropboxusercontent.com, а также скрипты гугли и яндекса - в этом можно убедится просмотрев ХТМЛ код страницы.
"Google Chrome" и "Comodo Dragon" поступают некрасиво и тупо молча по умолчанию блокируют весь этот контент, что разумеется приводит к некорректному отображению веб-страницы в браузере. Для того чтобы разрешить загрузку стороннего содержимого в "Comodo Dragon" или "Google Chrome" нужно в правом верхнем углу кликнуть по серой иконке щита и нажать на строку с текстом "Загрузить небезопасный скрипт":
После этого знак замка в адресной строке браузера будет перечеркнут красным:
Разрешение на загрузку стороннего содержимого в "Comodo Dragon" или "Google Chrome" будет действовать до закрытия страницы или самого браузера, а если мы хотим на постоянной основе разрешить загрузку сторонних элементов при просмотре https://, то нам следует добавить параметр "--allow-running-insecure-content" в строку запуска браузера, например изменить свойства ярлыка:
Отсутствует изображение замка в IE
При наличии в https:// странице подгружаемых элементов по обычному http:// протоколу в IE пропадает значок замка, который свидетельствует о наличии шифрования, соответственно нет возможности просмотреть данные о SSL/TLS сертификата или хотя бы узнать шифруются ли данные.
Это либо "баг" либо "глюк" браузера IE, который настоятельно НЕ рекомендуется к использованию независимо от версии и используемой платформы!
Опера: Серверу не удалось принять меры безопасности
Аналогичная ситуация с отсутствием замка возле адресной строки в IE, при этом есть сведения о SSL/TLS сертификате - это относится к Опера 11.хх. В версии же Опера 18.хх также есть некоторые противоречия, например сообщается, что "Незащищённое соединение - Соединение не защищено", но если отобразить "Подробнее", то там уже говорится о том, что "Некоторое содержимое этой страницы не защищено".
Браузеры "Firefox", "Google Chrome", "Comodo Dragon" более дисциплинированы и сообщают пользователю более подробные и достоверные детали о состоянии шифрования веб-страниц.
...
Ниже есть ещё несколько полезных ссылок на тему HTTPS (SSL/TLS) сертификатов, а если представленной здесь информации оказалось недостаточно или она является неточной, тогда сообщите нам об этом в комментариях ниже.
Ссылки по теме HTTPS (SSL/TLS)
- "На этой странице есть небезопасное содержание." - Cправка - Chrome
- Настройка Google Chrome - WebMoney Wiki
- Корневой сертификат WebMoney - WebMoney Wiki
- Установка корневого сертификата в браузере Google Chrome - WebMoney Wiki