wpssl.ru wordpress WPSSL.ru

Настройка HSTS в WordPress для повышения безопасности HTTPS

Что такое HSTS и зачем он нужен на WordPress

HTTP Strict Transport Security (HSTS) — это политика безопасности, которая сообщает браузерам, что сайт должен открываться только по HTTPS. Это предотвращает атаки типа "захват понижающего уровня" (SSL stripping), когда злоумышленник пытается заставить пользователя перейти с защищённого соединения на незащищённое HTTP.

Для сайтов на WordPress, особенно с установленным SSL-сертификатом, HSTS является важным дополнительным уровнем защиты. Он гарантирует, что все запросы идут через HTTPS, что повышает доверие пользователей и улучшает безопасность данных.

Включение HSTS особенно актуально, если вы используете e-commerce, формы регистрации или авторизации, а также если на сайте есть пользовательские данные.

Как правильно настроить HSTS в WordPress через .htaccess

Самый распространённый способ добавить заголовок HSTS — через файл .htaccess в корневой директории WordPress.

Добавьте следующий код в ваш .htaccess после строки RewriteEngine On:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Пояснения к параметрам:

  • max-age=31536000 — время в секундах, в течение которого браузер будет помнить о политике (здесь 1 год);
  • includeSubDomains — применяет политику ко всем поддоменам;
  • preload — позволяет добавить сайт в список HSTS preload, который используют браузеры для ещё более жёсткой защиты.

Если вы хотите сначала протестировать HSTS, можно убрать includeSubDomains и preload, а время поставить меньше, например, max-age=3600 (1 час).

Для работы этого кода у вас должен быть активен модуль mod_headers Apache. Если вы используете Nginx, настройте заголовок в конфигурации сервера.

Настройка HSTS в Nginx

Добавьте в конфигурацию сайта в блок server с HTTPS:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Не забудьте перезапустить Nginx после изменений.

Типичные проблемы при настройке HSTS и как их избежать

1. Смешанный контент. Если на сайте есть ресурсы (картинки, скрипты, iframe), загружаемые по HTTP, браузеры могут блокировать такие элементы или показывать предупреждения. Перед включением HSTS важно устранить смешанный контент. Для этого можно использовать плагин Clearfy, который помогает исправить или перенаправить HTTP-запросы на HTTPS.

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

3. Невозможность отмены HSTS. После установки политики с большим max-age браузеры будут помнить её долгое время. Если что-то пойдёт не так, пользователи будут «застрявшими» на HTTPS. Рекомендуется сначала установить короткий срок, проверить работоспособность, и только потом увеличить значение.

Пример функции для WordPress: добавление HSTS заголовка через хуки

Если вы не хотите менять настройки сервера или .htaccess, можно добавить HSTS заголовок программно через файл functions.php вашей темы или в собственном плагине:

function wpssl_add_hsts_header() {
    if (is_ssl()) {
        header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
    }
}
add_action('send_headers', 'wpssl_add_hsts_header');

Эта функция проверяет, что сайт открыт по HTTPS, и добавляет заголовок. Однако такой способ менее надёжен, чем настройка на уровне сервера, так как PHP может не сработать при ошибках или кешировании.

Проверка корректности настройки HSTS

После внесения изменений важно проверить, что заголовок действительно работает:

  • Через инструменты разработчика в браузере (вкладка Network → выберите запрос → Headers → Response Headers → Strict-Transport-Security);
  • С помощью онлайн-сервисов, например, hstspreload.org;
  • Через команду curl:
    curl -I https://ваш-сайт.ru

Как добавить сайт в список HSTS Preload

Если вы уверены в настройках, можно подать заявку на включение вашего сайта в список preload браузеров — это самый жёсткий уровень защиты.

Для этого нужно:

  • Настроить HSTS с параметрами max-age=31536000; includeSubDomains; preload;
  • Убедиться, что сайт полностью работает по HTTPS, включая все поддомены;
  • Подать заявку на hstspreload.org.

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

Дополнительные рекомендации и плагины для безопасности HTTPS на WordPress

Для комплексной защиты HTTPS и удобства управления SSL/HSTS можно использовать плагины, например:

  • Clearfy Pro — оптимизация безопасности, устранение смешанного контента и настройка HTTP заголовков;
  • WPRemark — мониторинг и оповещения о проблемах безопасности;
  • Плагин для автоматического перенаправления HTTP на HTTPS, если сервер не настроен.

Настройка HSTS — важный шаг в обеспечении безопасности WordPress-сайта. Она защищает пользователей от атак и повышает доверие к ресурсу. Следуйте рекомендациям, тестируйте изменения, и ваш сайт будет максимально защищён.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее