Skip to content
EN

Mixed Content: HTTPS-сайт загружает HTTP-ресурсы

Коротко:

Mixed Content — HTTPS-страница загружает ресурсы (JS, CSS, картинки, iframe) по HTTP. Chrome блокирует active mixed content полностью, passive — показывает warning. Исправление: замените все http://-ссылки на https:// или //-relative, добавьте Content-Security-Policy: upgrade-insecure-requests.

Эта ошибка встречается десятки тысяч раз в месяц. Разбираем причины и даём пошаговое решение.

Проверить SSL своего сайта →

Что означает Mixed Content

Mixed Content — HTTPS-страница загружает ресурсы (JS, CSS, картинки, iframe) по HTTP. Chrome блокирует active mixed content полностью, passive — показывает warning. Исправление: замените все http://-ссылки на https:// или //-relative, добавьте Content-Security-Policy: upgrade-insecure-requests.

Ошибка может появиться в Chrome, Edge, Opera, Brave (все на Chromium) и частично в Firefox и Safari. Разные браузеры отображают один и тот же код по-разному — но суть одна.

Как исправить (пошагово)

  1. Проверьте SSL-сертификат онлайнчекер Enterno.io покажет грейд, срок действия, цепочку и конкретную причину.
  2. Если проблема на стороне сервера — перевыпустите сертификат через certbot или выбранного CA.
  3. Обновите nginx/apache конфигурацию (настройте TLS 1.2/1.3, fullchain, правильные ciphers).
  4. Проверьте kernel OpenSSL — устаревший openssl < 1.1 может ломать handshake.
  5. После деплоя: проверьте ещё раз через SSL-чекер + очистите browser SSL-cache.

Проверить SSL сейчас →

Смежные SSL-ошибки

TL;DR: Как исправить Mixed Content

Чтобы исправить предупреждение Mixed Content на вашем сайте, убедитесь, что все ресурсы загружаются по протоколу HTTPS. Проверьте код вашей страницы на наличие ссылок на HTTP-ресурсы и замените их на HTTPS. Используйте инструменты браузера для выявления таких ресурсов и обновите конфигурацию вашего веб-сервера, если это необходимо.

Что такое Mixed Content и почему это важно

Mixed Content возникает, когда безопасная HTTPS-страница загружает ресурсы (например, изображения, скрипты или стили) через небезопасный HTTP-протокол. Это может привести к тому, что браузеры блокируют часть контента, что ухудшает пользовательский опыт и снижает уровень доверия к вашему сайту. Важно устранить Mixed Content для обеспечения полной безопасности и соответствия современным стандартам веб-разработки.

Существует два типа Mixed Content:

  • Доступный (active) Mixed Content: скрипты и фреймы, которые могут изменять содержимое страницы. Это наиболее опасный тип.
  • Неактивный (passive) Mixed Content: изображения и другие ресурсы, которые не влияют на безопасность страницы, но все же могут вызвать предупреждения у пользователей.

Поскольку большинство современных браузеров, таких как Chrome и Firefox, начали блокировать Mixed Content, важно заранее позаботиться о его устранении.

Шаги по исправлению Mixed Content

Чтобы исправить Mixed Content, выполните следующие шаги:

  1. Анализируйте ваш сайт: Используйте инструменты разработчика в браузере, чтобы найти ссылки на HTTP-ресурсы. В Chrome это можно сделать, нажав F12 и перейдя на вкладку "Консоль".
  2. Обновите ссылки: Замените все HTTP-ссылки на HTTPS. Это может включать ссылки на изображения, скрипты и стили. Например, если у вас есть:
<img src="http://example.com/image.jpg">
  1. Замените его на:
<img src="https://example.com/image.jpg">
  • Проверьте настройки сервера: Убедитесь, что ваш веб-сервер правильно настроен на поддержку HTTPS. Если вы используете Nginx, ваш конфигурационный файл может выглядеть так:
  • server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    }
    1. Используйте инструменты автоматизации: Рассмотрите возможность использования плагинов для CMS, таких как WordPress, которые могут автоматически исправлять Mixed Content.
    2. Тестируйте сайт: После внесения изменений проверьте сайт на наличие предупреждений о Mixed Content. Если они все еще присутствуют, повторите шаги 1-3.

    Следуя этим шагам, вы сможете устранить Mixed Content и повысить безопасность вашего сайта.

    СертификатСрок, издатель, домены (SAN)
    ЦепочкаПроверка промежуточных и корневых CA
    TLS-протоколВерсия TLS и набор шифров
    УязвимостиHeartbleed, POODLE, слабые шифры

    Почему нам доверяют

    TLS 1.3
    поддержка
    Полная
    цепочка CA
    <2с
    результат
    30/14/7
    дней до истечения

    Как это работает

    1

    Введите домен

    2

    Проверка цепочки TLS

    3

    Дата истечения и уязвимости

    Что проверяет SSL-тест?

    SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

    Детали сертификата

    Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

    Цепочка доверия

    Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

    Анализ TLS

    Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

    Оповещения об истечении

    Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

    DV vs OV vs EV сертификаты

    DV (Domain Validation)
    • Подтверждение только владения доменом
    • Выдаётся за минуты автоматически
    • Бесплатно через Let's Encrypt
    • Подходит для большинства сайтов
    • Самый распространённый тип
    OV / EV
    • Проверка организации (OV) или расширенная проверка (EV)
    • Выдаётся за 1-5 рабочих дней
    • Стоимость от $50 до $500/год
    • Для финансов, e-commerce, госсайтов
    • Повышает доверие пользователей

    Кому это нужно

    DevOps

    мониторинг SSL-сертификатов

    Безопасность

    аудит TLS-конфигурации

    SEO

    HTTPS как фактор ранжирования

    E-commerce

    доверие покупателей

    Частые ошибки

    Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
    Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
    Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
    Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
    Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

    Лучшие практики

    Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
    Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
    Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
    Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
    Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

    Получите больше с бесплатным аккаунтом

    Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

    Зарегистрироваться (FREE)

    Больше по теме

    Источники

    Часто задаваемые вопросы

    Безопасно ли игнорировать Mixed Content?

    Нет. Эта ошибка означает реальную проблему с SSL-сертификатом. Игнорирование (через chrome://flags или "thisisunsafe") делает соединение уязвимым к man-in-the-middle. Исправляйте на стороне сервера.

    Как проверить наличие этой ошибки заранее?

    Используйте <a href="/ssl">SSL/TLS-чекер Enterno.io</a> или <a href="/monitors">настройте мониторинг</a> с алертом за 14 дней до истечения сертификата. Получите email/Telegram-уведомление до того, как пользователи увидят ошибку.

    Помогает ли очистка cookies / cache?

    Иногда — для промежуточных кэшированных ошибок SSL. Шаги: chrome://net-internals/#sockets → Flush sockets, chrome://net-internals/#hsts → Delete domain security policies (осторожно, только для debug). Но если проблема на сервере — очистка cache не поможет.

    Let's Encrypt бесплатный — и сертификат валидный?

    Да, Let's Encrypt сертификаты во всех современных trust stores (Chrome, Firefox, Safari, Edge). 90-дневный срок действия с автопродлением через certbot. Нет причин использовать платный CA для стандартного сайта.

    Запустить инструмент, который описан в этой статье

    Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.