HSTS - HTTP Strict Transport Security
14.08.2022
Czym jest HSTS?
HSTS zwiększa bezpieczeństwo połączeń SSL poprzez wyeliminowanie połączeń nieszyfrowanych. Oczywiście, serwis internetowy, który chce wdrożyć HSTS musi już posiadać poprawny i zainstalowany certyfikat SSL. Ustawienie nagłówka Strict-Transport-Security (HSTS) w serwerze wymusza w przeglądarce klienta używanie tylko połączeń SSL. Jednocześnie zmniejsza ataki na serwis poprzez metodę Man in the Middle (MitM), czyli uniemożliwia zmodyfikowanie zaszyfrowanej transmisji.
Jak to działa?
Przy pierwszej wizycie w połączeniu SSL (HTTPS) przeglądarka sprawdza, czy serwer internetowy w opowiedzi wysyła nagłówek Strict-Transport-Security. Jeżeli tak, to przeglądarka zapamiętuje fakt, iż każde kolejne połączenie z serwisem www musi odbywać się tylko w połączeniu SSL (HTTPS). To, jak długo przeglądarka będzie pamiętała o przekierowaniu ruchu z HTTP na HTTS zależy to od parametru max-age, który jest podawany w sekundach (na poniższym przykładzie: 1 rok).
Konfiguracja w nginx
Parametr preload
użyj tylko, gdy chcesz, aby adres Twojego serwisu został dodany do HSTS Preload List w przeglądarkach Chrome, Firefox i innych (zobacz poniżej).
server {
listen 443 ssl http2;
server_name moja-domena.pl;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Konfiguracja w Apache'u
Parametr preload
użyj tylko, gdy chcesz, aby adres Twojego serwisu został dodany do HSTS Preload List w przeglądarkach Chrome, Firefox i innych (zobacz poniżej).
<VirtualHost 1.2.3.4:443>
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
Jak sprawdzić poprawność konfiguracji nagłówka HSTS?
-
Za pomocą polecenia
curl
:curl -sI https://www.moja-domena.pl | grep ^strict-transport-security
Jeżeli w odpowiedzi zobaczymy nagłówek Strict-Transport-Security oznacza to poprawną konfigurację HSTS po stronie serwera.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
-
Za pomocą serwisu Qualys SSL Labs.:
Zobacz konfigurację www.gigaone.pl w serwisie Qualys SSL Labs.
-
Za pomocą serwisu SecurityHeaders.com.:
Zobacz konfigurację www.gigaone.pl w serwisie SecurityHeaders.com.
Przeglądarki obsługujące HSTS
- Firefox od wersji 4
- Chrome od wersji 4
- Opera od wersji 12
- Safari od wersji 7 w OS X 10.9 Mavericks
- Internet Explorer 11 w Windows 10
Przeglądarki nieobsługujące HSTS
- Internet Explorer wszystkie do wersji 11 (w Windows 8)
Dodanie serwisu do HSTS Preload List w Chrome, Firefoksie i innych
HSTS Preload List jest listą stron, które używają HTTPS domyślnie, z pominięciem połączeń nieszyfrowanych (HTTP). Projekt jest utrzymywany przez Google, z którego korzystają producenci innych przeglądarek, m.in. Firefoksa. Jeżeli chcesz dodać swój serwis do tej listy skorzystaj z formularza na stronie https://hstspreload.org/.