Laut der Studie von Netcraft sind 95 % der HTTPS-Server anfällig für Man-in-the-Middle-Angriffe. Daher ist es sehr wichtig, HSTS richtig zu implementieren. HSTS (HTTP Strict Transport Security) ist eine Richtlinie, die Websites vor böswilligen Angriffen wie Clickjacking, Protokoll-Downgrades und Man-in-the-Middle-Angriffen schützt, wie in meinem früheren Artikel erläutert. In diesem Artikel sehen wir verschiedene Schritte zum Aktivieren von HSTS auf NGINX und Apache.
So aktivieren Sie HSTS auf Nginx
Öffnen Sie Ihre Nginx-Konfigurationsdatei für die Domäne, die Sie zum Aktivieren von HSTS benötigen.
Zum Beispiel:/etc/nginx/conf.d/tg.conf
Fügen Sie Ihrem HTTPS-Serverblock die folgende Zeile hinzu:
HSTS NICHT zum HTTP-Block hinzufügenadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;includeSubDomains-Parameter
Der optionale includeSubDomains
-Parameter teilt dem Browser mit, dass die HSTS-Richtlinie auch für alle Subdomains der aktuellen Domain gilt.
Der always
Parameter stellt sicher, dass der Header für alle Antworten gesetzt wird, einschließlich intern generierter Fehlerantworten.
Um das HSTS für einen Zeitraum von 1 Jahr zu konfigurieren, setzen Sie max-age auf 31536000 (in Sekunden). Sie muss mindestens 3 Monate betragen, um die Sicherheitsanforderungen zu erfüllen.
Starten Sie den Nginx-Dienst neu
Überprüfen Sie vor dem Neustart die Konfigurationsdatei wie folgt:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie den Nginx-Server neu, um die neuen Änderungen zu übernehmen.
# systemctl restart nginx
So aktivieren Sie HSTS auf Apache
Um HSTS auf Apache zu aktivieren, benötigen wir die mod_headers
Modul installiert. Führen Sie den folgenden Befehl aus, um festzustellen, ob das Modul bereits installiert ist.
# apachectl -M | grep headers headers_module (shared)
Wenn Sie es haben, fahren Sie mit der Konfiguration der Header-Einstellungen der Domäne fort, die Sie zum Aktivieren von HSTS benötigen. Öffnen Sie die Konfigurationsdatei, die den VirtualHost
enthält die SSL verwendet.
For eg: /etc/httpd/conf.d/tg.conf
Fügen Sie die folgende Konfiguration in Ihrem VirtualHost
hinzu für Port 443 wie folgt:
<VirtualHost *:443> ...... Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ...... </VirtualHost>
Starten Sie den Apache-Dienst neu
Überprüfen Sie vor dem Neustart die Konfigurationsdatei wie folgt:
# apachectl configtest Syntax OK
Wenn die Syntax in Ordnung ist, starten Sie den Apache-Server neu, um die neuen Änderungen zu übernehmen.
# systemctl restart httpd ## Redhat systems # systemctl restart apache2 ## Debian systems
Das ist es! Testen Sie den Webserver, um festzustellen, ob HSTS aktiviert wurde.
$ curl -kIs https://example.com | grep Strict Strict-Transport-Security: max-age=31536000; includeSubDomains