Skip to content
EN

Как исправить ошибку Mixed Content

Коротко:

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

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

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

Пошаговая настройка

  1. Откройте DevTools → Console → найдите ошибки "Mixed Content: The page was loaded over HTTPS"
  2. Просканируйте сайт через Mixed Content Scanner Enterno.io — получите полный список
  3. Замените HTTP-ссылки в HTML: http://cdn.old.com → https://cdn.old.com
  4. В WordPress: SQL UPDATE wp_posts SET post_content = REPLACE(post_content, "http://example.com", "https://example.com")
  5. В 1С-Битрикс: админка → Настройки → Сайты → изменить server_name, и запустить "Конвертировать ссылки"
  6. Добавьте header: Content-Security-Policy: upgrade-insecure-requests; — автоматически апгрейдит все HTTP на HTTPS
  7. Проверьте повторно через сканер — должно быть 0 нарушений

Рабочие примеры

СценарийКонфиг / запись
nginx: CSP upgrade-insecure-requestsadd_header Content-Security-Policy "upgrade-insecure-requests;" always;
Apache: .htaccessHeader set Content-Security-Policy "upgrade-insecure-requests;"
HTML meta fallback<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests;">
Protocol-relative URL<img src="//cdn.example.com/logo.png"> (работает и HTTP и HTTPS)
WordPress pluginReally Simple SSL — авто-замена + HSTS

Типичные ошибки

  • CSP upgrade-insecure-requests не работает если CDN сам не отдаёт HTTPS — ресурс просто 404
  • <a href="http://..."> не считается mixed content, но UX плохой — замените всё
  • JavaScript XMLHttpRequest к HTTP endpoint блокируется без warning — проверьте вручную
  • iframe с HTTP-источником — active mixed content, блокируется Chrome целиком
  • WebSocket ws:// на HTTPS-странице тоже блокируется — используйте wss://

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

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

Что такое Mixed Content?

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

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

  • Небезопасный контент: Это ресурсы, загружаемые по HTTP, которые могут быть перехвачены и изменены злоумышленниками.
  • Безопасный контент: Это ресурсы, загружаемые по HTTPS, но которые все равно могут вызвать проблемы с безопасностью, если они зависят от небезопасных ресурсов.

Чтобы избежать таких проблем, важно убедиться, что все ресурсы вашего сайта загружаются по протоколу HTTPS.

Практическое руководство по исправлению Mixed Content

Для исправления Mixed Content на вашем сайте выполните следующие шаги:

  1. Проверьте наличие Mixed Content: Используйте команду curl -I https://ваш_домен, чтобы проверить заголовки ответа. Обратите внимание на любые ссылки, которые указывают на HTTP.
  2. Обновите ссылки на ресурсы: Найдите все ресурсы, которые загружаются по HTTP, и обновите их на HTTPS. Это может включать ссылки на изображения, скрипты и стили.
  3. Используйте инструменты для автоматизации: Инструменты, такие как sed или grep, могут помочь вам найти и заменить ссылки в коде. Например:
grep -rl 'http://' /path/to/your/site | xargs sed -i 's|http://|https://|g'

Эта команда найдет все файлы, содержащие ссылки на HTTP, и заменит их на HTTPS.

  1. Настройте редиректы: Если ресурсы не могут быть обновлены, настройте редиректы на сервере. Например, в конфигурации Nginx вы можете использовать следующее:
server { listen 80; server_name ваш_домен; return 301 https://$host$request_uri; }

Это перенаправит все HTTP-запросы на HTTPS.

  1. Проверьте все изменения: После внесения изменений, снова используйте команду curl для проверки вашего сайта. Убедитесь, что все ресурсы загружаются по HTTPS и нет предупреждений о Mixed Content.

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

HTTP на HTTPS-сайтеРесурсы по незащищённому протоколу
Активный контентJS/CSS блокируется браузером
Пассивный контентИзображения с предупреждением
Ресурсы страницыВсе внешние ресурсы проверяются

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

HTTP
обнаружение mixed-content
HTTPS
проверка безопасности
CSS/JS
все типы ресурсов
Free
без ограничений

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

1

Введите URL страницы

2

Сканируем все ресурсы

3

Находим HTTP-ресурсы на HTTPS

Что такое Mixed Content?

Mixed Content — загрузка HTTP-ресурсов (изображений, скриптов, CSS) на HTTPS-странице. Браузеры блокируют активный mixed content (JS, CSS) и предупреждают о пассивном (изображения).

Сканирование ресурсов

Находим все HTTP-ресурсы на странице: скрипты, стили, изображения, фреймы.

Классификация угроз

Делим на активный (критичный) и пассивный (некритичный) mixed content.

Список проблемных URL

Каждый HTTP-ресурс перечислен с типом и рекомендацией по исправлению.

Быстрая проверка

Результат за секунды — проверяем страницу без полной загрузки браузером.

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

Безопасники

аудит после миграции на HTTPS

Разработчики

поиск небезопасных ресурсов

SEO-специалисты

устранение предупреждений браузера

Системные администраторы

контроль третьесторонних ресурсов

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

Игнорировать пассивный mixed contentHTTP-изображения не блокируются, но браузер показывает предупреждение в адресной строке.
Не проверять после добавления JSСторонние скрипты могут подгружать HTTP-ресурсы. Проверяйте после подключения.
Использовать абсолютные HTTP URLВезде используйте относительные URL или схему // для адаптации протокола.
Не настраивать CSPContent-Security-Policy: upgrade-insecure-requests автоматически заменяет HTTP на HTTPS.

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

Используйте <code>upgrade-insecure-requests</code>CSP-директива автоматически обновляет все HTTP-ресурсы до HTTPS.
Проверяйте при деплоеВключите mixed content проверку в пайплайн CI/CD.
Используйте относительные URLsrc="/images/logo.png" вместо src="http://example.com/images/logo.png".
Следите за сторонними виджетамиВиджеты соцсетей и рекламные системы — частый источник mixed content.

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

История проверок mixed content и мониторинг HTTPS-безопасности сайта.

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

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

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

В чём разница между active и passive mixed content?

Active — скрипты, iframe, stylesheets, XHR — могут выполнить код с ограничениями HTTPS-страницы. Chrome блокирует полностью. Passive — картинки, аудио, видео — только пассивно отображаются. Показывают warning, но не блокируются.

Можно ли отключить блокировку?

Для отдельного домена в Chrome: Settings → Privacy → Site settings → Insecure content → Allowed for specific site. Но на production это опасно — используйте только для dev.

upgrade-insecure-requests работает везде?

Chrome 43+, Firefox 42+, Safari 10.1+. IE не поддерживает, но на enterno.io mobile/desktop браузеры покрывают 98%.

Как предотвратить mixed content в новых статьях?

CMS-плагин для авто-замены при сохранении (WordPress: Really Simple SSL), Git pre-commit hook для контента, CSP-report мониторинг в production.

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

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