HSTS (HTTP Strict Transport Security) – это механизм веб-безопасности, который помогает защитить веб-сайты от атак типа «man-in-the-middle» (MITM). Он заставляет браузеры подключаться к сайту только через HTTPS, даже если пользователь ввел HTTP-адрес или перешел по небезопасной ссылке. В этой статье мы рассмотрим, как настроить HSTS на сервере Linode.
Что такое HSTS и зачем он нужен?
Когда вы вводите адрес веб-сайта в браузере, он сначала устанавливает соединение с сервером через HTTP. Затем, если сайт настроен на HTTPS, происходит перенаправление на безопасную версию. Однако, в процессе первоначального HTTP-соединения, злоумышленник может перехватить запрос и перенаправить вас на поддельный сайт.
HSTS решает эту проблему, сообщая браузеру, что он должен всегда подключаться к сайту только через HTTPS. Браузер запоминает эту информацию и автоматически перенаправляет все последующие запросы на HTTPS, даже если вы введете HTTP-адрес. Это значительно повышает безопасность вашего сайта.
Предварительные требования
Прежде чем начать настройку HSTS, убедитесь, что у вас есть:
- Активный аккаунт Linode.
- Доменное имя, настроенное на ваш Linode.
- Действующий SSL/TLS сертификат для вашего домена (например, Let’s Encrypt).
- Доступ к конфигурационному файлу вашего веб-сервера (например, Apache или Nginx).
Настройка HSTS в Apache
Если вы используете Apache в качестве веб-сервера, выполните следующие шаги:
- Откройте конфигурационный файл вашего виртуального хоста. Обычно он находится в каталоге
/etc/apache2/sites-available/. - Добавьте следующую строку в конфигурацию вашего виртуального хоста, внутри блока
<VirtualHost>: - Разъяснение параметров:
max-age=31536000: Указывает, как долго браузер должен запоминать правило HSTS (в секундах). 31536000 секунд – это один год.includeSubDomains: Применяет правило HSTS ко всем поддоменам вашего домена.preload: Позволяет добавить ваш домен в список предварительной загрузки HSTS, который встроен в большинство современных браузеров.- Сохраните конфигурационный файл и перезапустите Apache:
sudo systemctl restart apache2
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Настройка HSTS в Nginx
Если вы используете Nginx, выполните следующие шаги:
- Откройте конфигурационный файл вашего сервера. Обычно он находится в каталоге
/etc/nginx/sites-available/. - Добавьте следующую строку в блок
server: - Разъяснение параметров: (аналогичны Apache)
- Сохраните конфигурационный файл и перезапустите Nginx:
sudo systemctl restart nginx
add_header Strict-Transport-Security "max_age=31536000; includeSubDomains; preload" always;
Предварительная загрузка HSTS
Чтобы ваш сайт был включен в список предварительной загрузки HSTS, вам необходимо отправить запрос на https://hstspreload.org/. Этот список встроен в большинство современных браузеров, что обеспечивает максимальную защиту от атак MITM.
Важно: Перед отправкой запроса убедитесь, что ваш сайт полностью поддерживает HTTPS и что HSTS настроен правильно. Если вы допустите ошибку, ваш сайт может стать недоступным для пользователей, использующих браузеры с поддержкой HSTS.
Проверка настройки HSTS
Вы можете проверить, правильно ли настроен HSTS, с помощью онлайн-инструментов, таких как https://securityheaders.com/. Просто введите адрес вашего сайта и проверьте, отображается ли заголовок Strict-Transport-Security.