Технология HSTS - как правильно внедрить на сайт?


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

Чтобы этого не произошло, используется технология HSTS. Она представляет собой алгоритм, по которому взаимодействуют сервер и ваш браузер, при этом сайту автоматически присваивается статус защищенного посредством заголовка HTTP Strict Transport Security. Этот статус выдается при ответе сервера и он указывает браузеру, что необходимо включить постоянную автоматическую переадресацию на защищенную версию сайта, работающую под протоколом https. 

Тем не менее, несмотря на то, что технология HSTS призвана обеспечить защиту пользователя, все равно остаются уязвимые места:

  • При использовании другого браузера;
  • При переустановке ОС или вашего браузера;
  • После очистки кэша;
  • При использовании другого устройства, например планшета или смартфона;
  • После окончания срока действия HSTS. 

Если первое соединение прошло через протокол HTTP, то оно не будет защищаться. В 85% случаев перенаправление на защищенную версию сайта производится только после того, как был совершен первый переход. 

Для того, чтобы решить подобную проблему, Google создал инструмент под названием Preload List. С этим инструментом браузер сначала проверяет, есть ли сайт в списке, а только затем соединяется с ним по защищенному протоколу. 

Если у вас активизирована технология HSTS, а какие страницы недоступны по защищенному соединению или просрочен SSL-сертификат, то доступ к таким страница будет заблокирован. Вариантов обойти такое шифрование нет ни в одном из браузеров. 

После того, как Preload List активирован, для выхода из него необходимо подавать специальный запрос, рассмотрение которого происходит несколько месяцев. Для браузера Chrome ответ достигает порядка трех месяцев, для других браузеров время ожидания еще больше. Поэтому, прежде чем вносить свой сайт в Preload List, подумайте, нужна ли вам постоянно поддерживать на своем ресурсе работу защищенного протокола. 

Когда технология HSTS подключена, в браузере пользователь будет видеть только те сайты, что работают по защищенному протоколу. Даже если вбить в адресную строку домен через обычный протокол HTTP, произойдет автоматический редирект на защищенную версию. Это позволяет сводить к минимуму риск перехвата ваших кукис и конфиденциальных данных. 

Настройка HSTS на сайте

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

  1. Strict-Transport-Security: max-age=<expire-time> — устанавливается временной промежуток действия HSTS для определенного сайта.
  2. Strict-Transport-Security: max-age=<expire-time>; includeSubDomains— задается временной период и указывается, что технология HSTS распространяется на основной домен и его субдомены.
  3. Strict-Transport-Security: max-age=<expire-time>; preload — указывает браузеру период действия HSTS и включение сайта в список Preload List.
  4. add_header Strict-Transport-Security "max-age=31536000;” - Так выглядит наиболее простой вариант заголовка. 

Он обозначает, что заголовок действует 31536000 секунд, т.е. 1 год. Рекомендуется устанавливать минимальное значение времени действия заголовка сразу после параметра «max-age». Это позволит снизить негативное влияние бага, если он возникнет, а также даст возможность в кратчайшие сроки исправить ситуацию. 

Перед тем, как настраивать HSTS, рекомендуется установка ликвидного SSL-сертификата, а также ручная настройка всех редиректов, потому что при автоматической переадресации они могут работать некорректно. 

Даже если есть ссылки с переходами на незащищенные страницы, вы будете получать уведомления о небезопасном соединении. Поэтому проверять необходимо ВСЕ соединения на сайте, прежде чем подключаться к HSTS

Настойка HSTS в Apache

В конфиг-файле внесите следующие параметры:

<VirtualHost 67.89.123.45:443>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"
</VirtualHost>

Срок действия заголовка будет обновляться при каждом переходе на сайт и составляет 1 год. 

Для того, чтобы пользователи перенаправлялись на страницы с соединением HTTPS, необходимо включить команду:

<VirtualHost *:80>
  [...]
  ServerName site.ru
  Redirect permanent / https://site.ru/
</VirtualHost>

Вместо site.ru укажите название домена своего сайта. 

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

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

В панели хостинга отыщите конфиг-файл /etc/nginx/conf.d, куда внесите заголовок Strict Transport Security  и все необходимые параметры. 

ВАЖНО: используйте только сервер, поддерживающий технологию HSTS. 

Нельзя применять на одном и том же сервере версию с защищенным протоколом и с незащищенным. Настройте все редиректы с незащищенных страниц на страницы с HTTPS. 

На сервисе SSL Server Test вы можете произвести проверку сертификата SSL, а также оценить сайт на предмет защищенности. Если ваш сайт получили оценку «А», это значит, что сертификат безопасности имеется. Для сайтов, имеющих подключенную технологию HSTS, выставляется оценка «А+». 

Заключение 

Если вы хотите подключить на свой сайт технологию HSTS, то делать это рекомендуется только после того, как вы произведете полную проверку соединений всех страниц по защищенному протоколу. 

Для того, чтобы браузер получил команду всего определять данный сайт, как https, необходимо добавить заголовок HTTP Strict Transport Security в файл конфига, после чего произвести перезапуск сервера. При первом запуске установите минимальное значение срока действия заголовка, чтобы при возникновении ошибок вы смогли оперативно их устранить. 

Важно постоянно поддерживать HSTS на должном уровне. При появлении страниц с незащищенным соединением http или окончании срока действия SSL-сертификата, при загрузке страниц пользователи будут видеть ошибку.

Не спешите включать свой сайт в список Preload List. Выход из списка – процедура очень длительная и может занимать несколько месяцев.  

Реальные отзывы заказчиков о работе с «Профиланс»

star star star star star
оценок: 1889
среднее 4,9 из 5
Работы выполнена качественно и даже раньше ср...
Работы выполнена качественно и даже раньше срока, все доработки выполнены, текст получился отличный!!!!! Рекомендую))))
Виктор
Работы выполнена качественно и даже раньше срока, все доработки выполнены, текст получился отличный!!!!! Рекомендую))))
Виктор
Очередной заказ выполнен быстро и качественно...
Очередной заказ выполнен быстро и качественно. Обязательно ещё обращусь.)))
Виктор
Очередной заказ выполнен быстро и качественно. Обязательно ещё обращусь.)))
Виктор
Очень быстро выполнено задание, все замечания...
Очень быстро выполнено задание, все замечания были оперативно исправлены.
Алексей
Очень быстро выполнено задание, все замечания были оперативно исправлены.
Алексей
Отличная работа!!! БЫСТРО, КАЧЕСТВЕННО и СТРО...
Отличная работа!!! БЫСТРО, КАЧЕСТВЕННО и СТРОГО В РАМКАХ ТЕХЗАДАНИЯ!!! Обращайтесь, не пожалеете!!!
Валентина
Отличная работа!!! БЫСТРО, КАЧЕСТВЕННО и СТРОГО В РАМКАХ ТЕХЗАДАНИЯ!!! Обращайтесь, не пожалеете!!!
Валентина
Какой великолепный сайт, благодарна этому са...
Какой великолепный сайт, благодарна этому сайту, тут самые лучшие "фрилансеры"!!! Мария Фрилансер прекрасно и до срочно...
Инна
Какой великолепный сайт, благодарна этому сайту, тут самые лучшие "фрилансеры"!!! Мария Фрилансер прекрасно и до срочно выполнила перевод немецкого языка, быстро и на самую лучшую оценку "5", сразу чувствуется, что знает этот предмет на отлично! Я безмерно счастлива, у меня нет теперь долгов к этой сессии, благодарю Мария Вы супер! С наступающим Новым годом Мария, всех благ, счастья, любви, и все, то, что сами себе желаете!
Инна
Андрей - опытный и исполнительный специалист,...
Андрей - опытный и исполнительный специалист, взявшийся за горящий заказ в Новый Год и выполнивший его блестяще и в срок...
Василий
Андрей - опытный и исполнительный специалист, взявшийся за горящий заказ в Новый Год и выполнивший его блестяще и в срок. Заданием было выставить правильный тайминг готовых субтитров и добавить озвучку перевода документального фильма. Помимо самого задания были устранены шумы, получившиеся при записи озвучки, а также оперативно была исправлена ошибка в озвучке: фрагмент с оговоркой благополучно вырезан и заменен на присланный правильный.
Василий
Работа сделана быстро, единственное хотелось...
Работа сделана быстро, единственное хотелось бы, чтоб оформление было в ворде.
Ирина
Работа сделана быстро, единственное хотелось бы, чтоб оформление было в ворде.
Ирина
Очень быстро и качественно. До работы были за...
Очень быстро и качественно. До работы были заданы все уточняющие вопросы. Выполнено все без замечаний, были предложены н...
Валентина
Очень быстро и качественно. До работы были заданы все уточняющие вопросы. Выполнено все без замечаний, были предложены несколько итоговых вариантов. Очень рада сотрудничеству!!! Обращайтесь
Валентина

Вы заказчик и вам необходимо найти фрилансера?

«Профиланс» — это безопасный сервис для работы с фрилансерами

Вы фрилансер и вам нужны заказы?

Заполните заявку и получите доступ к заказам

Стать фрилансером

Заполните форму
и узнайте цену

Специализация
Специализация
Категория
Категория

Файлы при наличии

    Профиланс специализируется на фриланс-заказах: дизайн, маркетинг, реклама, программирование и т.д. Для студенческих заказов используйте сервис «Всё сдал!».
    • здесь больше исполнителей по студенческим заказам;
    • ниже цены;
    Все сдал!