GNU/Linux >> Znalost Linux >  >> Linux

Jak povolit zásady HSTS (HTTP Strict Transport Security) v Nginx &Apache

Podle studie společnosti Netcraft je 95 % serverů HTTPS zranitelných vůči útokům typu Man-in-the-Middle. Proto je velmi důležité správně implementovat HSTS. HSTS (HTTP Strict Transport Security) je zásada, která chrání webové stránky před škodlivými útoky, jako je clickjacking, downgrade protokolu a útoky typu man-in-the-middle, jak je vysvětleno v mém dřívějším článku. V tomto článku uvidíme různé kroky k povolení HSTS na NGINX a Apache.

Jak povolit HSTS na Nginx

Otevřete konfigurační soubor Nginx pro doménu, kterou potřebujete k povolení HSTS.

Například:/etc/nginx/conf.d/tg.conf

Přidejte níže uvedený řádek do svého serverového bloku HTTPS:

NEPŘIDÁVEJTE HSTS do HTTP bloku
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
includeSubDomains parametr

Volitelné includeSubDomains Parametr sděluje prohlížeči, že zásady HSTS platí také pro všechny subdomény aktuální domény.

Vždy parametr

always Parametr zajišťuje, že záhlaví je nastaveno pro všechny odpovědi, včetně interně generovaných chybových odpovědí.

Chcete-li mít HSTS nakonfigurováno na časové rozpětí 1 roku, nastavte maximální věk na 31536000 (v sekundách). Aby byly splněny bezpečnostní požadavky, musí to být alespoň 3 měsíce.

Restartujte službu Nginx

Před restartováním ověřte konfigurační soubor, jak je uvedeno níže:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Restartujte server Nginx, abyste provedli nové změny.

# systemctl restart nginx

Jak povolit HSTS na Apache

Abychom povolili HSTS na Apache, potřebujeme mít mod_headers modul nainstalován. Spusťte níže uvedený příkaz a zjistěte, zda je modul již nainstalován.

# apachectl -M | grep headers
 headers_module (shared)

pokud jej máte, pokračujte v konfiguraci nastavení záhlaví domény, kterou potřebujete k povolení HSTS. Otevřete konfigurační soubor, který obsahuje VirtualHost který používá SSL.

For eg: /etc/httpd/conf.d/tg.conf

Přidejte níže uvedenou konfiguraci do svého VirtualHost pro port 443, jak je uvedeno níže:

<VirtualHost *:443>
......
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
......
</VirtualHost>

Restartujte službu Apache

Před restartováním ověřte konfigurační soubor, jak je uvedeno níže:

# apachectl configtest
Syntax OK

Pokud je syntaxe v pořádku, restartujte server Apache, abyste provedli nové změny.

# systemctl restart httpd       ## Redhat systems

# systemctl restart apache2     ## Debian systems

A je to! Otestujte webový server, abyste zjistili, zda byl povolen HSTS.

$ curl -kIs https://example.com | grep Strict
Strict-Transport-Security: max-age=31536000; includeSubDomains

Linux
  1. Jak povolit HTTP2 v NGINX

  2. Jak povolit HTTP/2 v Nginx na Ubuntu a CentOS

  3. Jak povolit dokonalé dopředné utajení SSL/TLS v Apache nebo Nginx

  1. Jak přesměrovat HTTP na HTTPS v Nginx

  2. Jak povolit HTTP/2 v Nginx

  3. Jak povolit TLS 1.3 v Nginx

  1. Jak povolit protokol HTTP/2 s Apache na Ubuntu 20.04

  2. Jak povolit IPv6 v Nginx?

  3. Jak povolit kompresi GZIP v Nginx