HTTPS/SSL/TLS предупреждения в распространённых веб-браузерах

archive view archive save

https-logo1 При посещении некоторых веб-сайтов по защищённому протоколу 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) примерно следующий:

  1. При открытии страницы с префиксом https:// браузер запрашивает у веб-сервера идентификационную информацию, на сервере уже должен быть установлен SSL сертификат;
  2. Когда сервер вернул идентификационную информацию, браузер в свою очередь подтверждает её подлинность в автоматическом режиме, с помощью предустановленного в самом браузере списка доверенных центров сертификации, или же в ручном режиме если SSL сертификат самоподписной (пользователь должен дать согласие на продолжение просмотра страницы), после чего докладывает серверу о своём решении (своего рода SSL-рукопожатие) согласен на обмен шифрованными данными или нет;
  3. Сервер в ответ высылает виртуально подписанное (с помощью открытого ключа) соглашение, которое даёт возможность браузеру начать закодированную передачу данных с помощью этого самого соглашения (открытого ключа).

Только после успешного выполнения всех указанных выше пунктов возможно начало обмена зашифрованными данными между браузером и веб-сервером. Если другими словами, то шифрование веб-форм и прочих передаваемых данных станет возможным только после того, когда сайт в браузере будет открыт с префиксом https://. Для примера: если мы открыли страницу сайта по обычному http:// протоколу и вводим свои данные (логин/пароль) для авторизации на сайте, а в форме "<form action="https://..." ... >" указано, что они должны быть отправлены на защищённый адрес, то в таком случае есть вероятность того, что они будут отправлены в открытом виде.

Немного про SSL сертификаты

Не вникая глубоко в технические подробности скажем, что SSL сертификаты для веб-сервера есть платные и бесплатные - первые подписанные доверенным центром сертификации, вторые так называемые самоподписные (self-signed).

Разница между ними лишь только в том, как Ваш браузер к ним относится - первым браузер доверяет практически безоговорочно, вторым у браузера нет доверия и он предлагает пользователю самому решить продолжать ли просмотр данного сайта (ака кнопка "Продолжить всё равно") или нет.

site-security-certificate-is-not-trusted

Слабое доверие, или вовсе его отсутствие, к self-signed SSL сертификату никак не отражается на безопасности передачи данных - основная разница только лишь в том, что тот платный из-за поручительства третьей стороны и ею же подписан, а второй бесплатный создан и подписан самостоятельно.

Например система электронных платежей WebMoney уже много лет для своих сервисов использует преимущественно self-signed SSL сертификаты!

Лучше (безопаснее) пересылать данные серверу по защищенному каналу с помощью self-signed SSL сертификата, чем отправлять их по сети Интернет в открытом виде!

"Отображать только безопасное содержимое веб-страниц" в IE

"Internet Explorer" на множестве сайтов может довести пользователя до состояния бешенства постоянно выдавая баннер с вопросом "Отображать только безопасное содержимое веб-страниц", на который мы постоянно должны отвечать "Нет" в том случае, если хотим загрузить сторонние элементы, а как ранее упоминалось это может быть что угодно, от ЦСС стилей до графических и мультимедиа файлов без который работа с сайтом не будет полноценной.

ie-banned-node-with-mixed-content

Для того чтобы в IE убрать примелькавшуюся мессагу "Отображать только безопасное содержимое веб-страниц" есть два варианта:

  1. Изменить свойства безопасности для всей зоны "Интернет";
  2. Изменить свойства безопасности для зоны "Надёжные узлы" и по мере необходимости добавлять туда адреса веб-сайтов, которым мы полностью доверяем.

Второй вариант является более предпочтительным. Для этого сначала сменим настройки для зоны "Надёжные узлы": «Сервис — Свойства обозревателя — Безопасность — Надёжные узлы», нажимаем кнопку «Другой...», в появившемся окне находим секцию «Разное - Отображение разнородного содержимого - Включить».

ie-change-safe-node-zone-settings_1

Теперь в зону "Надёжные узлы" добавим доверенный узел и снимем (узлы то у нас надёжные) там галку "Для всех узлов этой зоны требуется проверка серверов (https://)":

ie-change-safe-node-zone-settings_2

Теперь при посещении доверенного узла нам больше не будет мелькать надоедливая мессага, а внизу браузера мы будем видеть зелёную галку и надпись "Неизвестная зона (смешанная)".

ie-change-safe-node-zone-settings_3

"На этой странице есть небезопасное содержание." в "Google Chrome"

"Google Chrome" и "Comodo Dragon" родственники - построены на том же Chronium, а поэтому всё о "Google Chrome" практически в равной степени относится и к "Comodo Dragon". Вот как например может выглядеть предупреждение о содержании разнородного содержимого на нашем же сайте:

comodo-ban-mixed-https-and-http_1

В предупреждении сказано, что соединение зашифровано, но страница содержит сторонние элементы и ресурсы, которые не являются безопасными, что говорит о загрузке файлов со сторонних сайтов не по протоколу https://, а через обычный http://.

Например в нашем случае это файлы стилей, шрифты и изображения с сайта static.remoteshaman.com и dl.dropboxusercontent.com, а также скрипты гугли и яндекса - в этом можно убедится просмотрев ХТМЛ код страницы.

"Google Chrome" и "Comodo Dragon" поступают некрасиво и тупо молча по умолчанию блокируют весь этот контент, что разумеется приводит к некорректному отображению веб-страницы в браузере. Для того чтобы разрешить загрузку стороннего содержимого в "Comodo Dragon" или "Google Chrome" нужно в правом верхнем углу кликнуть по серой иконке щита и нажать на строку с текстом "Загрузить небезопасный скрипт":

comodo-ban-mixed-https-and-http_2

После этого знак замка в адресной строке браузера будет перечеркнут красным:

comodo-ban-mixed-https-and-http_3

Разрешение на загрузку стороннего содержимого в "Comodo Dragon" или "Google Chrome" будет действовать до закрытия страницы или самого браузера, а если мы хотим на постоянной основе разрешить загрузку сторонних элементов при просмотре https://, то нам следует добавить параметр "--allow-running-insecure-content" в строку запуска браузера, например изменить свойства ярлыка:

chrome-shortcut-allow-running-insecure-content

Отсутствует изображение замка в IE

При наличии в https:// странице подгружаемых элементов по обычному http:// протоколу в IE пропадает значок замка, который свидетельствует о наличии шифрования, соответственно нет возможности просмотреть данные о SSL/TLS сертификата или хотя бы узнать шифруются ли данные.

Это либо "баг" либо "глюк" браузера IE, который настоятельно НЕ рекомендуется к использованию независимо от версии и используемой платформы!

Опера: Серверу не удалось принять меры безопасности

Аналогичная ситуация с отсутствием замка возле адресной строки в IE, при этом есть сведения о SSL/TLS сертификате - это относится к Опера 11.хх. В версии же Опера 18.хх также есть некоторые противоречия, например сообщается, что "Незащищённое соединение - Соединение не защищено", но если отобразить "Подробнее", то там уже говорится о том, что "Некоторое содержимое этой страницы не защищено".

opera-18-ssl-info

Браузеры "Firefox", "Google Chrome", "Comodo Dragon" более дисциплинированы и сообщают пользователю более подробные и достоверные детали о состоянии шифрования веб-страниц.

...

Ниже есть ещё несколько полезных ссылок на тему HTTPS (SSL/TLS) сертификатов, а если представленной здесь информации оказалось недостаточно или она является неточной, тогда сообщите нам об этом в комментариях ниже.

Ссылки по теме HTTPS (SSL/TLS)


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме