Heim Betrieb und Instandhaltung Nginx Wie Nginx HSTS konfiguriert

Wie Nginx HSTS konfiguriert

May 14, 2023 pm 04:37 PM
nginx hsts

Netcraft veröffentlichte kürzlich seine Studie zum Testen von SSL/TLS-Websites und stellte fest, dass nur 5 % der Benutzer HTTP Strict Transport Security HSTS korrekt implementierten.

Was ist HSTS? , modifizieren und fälschen. Wenn der Benutzer manuell einen Domänennamen oder einen http://-Link eingibt, erfolgt die erste Anfrage an die Website unverschlüsselt und verwendet einfaches HTTP. Die sichersten Websites senden sofort eine Weiterleitung zurück, die den Benutzer zu einer https-Verbindung weiterleitet. Ein Man-in-the-Middle-Angreifer kann jedoch möglicherweise die anfängliche HTTP-Anfrage abfangen und dadurch die nachfolgenden Antworten des Benutzers steuern.

Natürlich wurde HSTS ins Leben gerufen, um dieses potenzielle Sicherheitsproblem zu lösen. Selbst wenn der Benutzer einen Domänennamen oder eine HTTP-Verbindung eingibt, wird der Browser ausschließlich auf eine HTTPS-Verbindung aktualisiert.

Wie Nginx HSTS konfiguriertSo funktioniert HSTS

HSTS-Richtlinie wird von einer sicheren HTTPS-Site gesendet. Veröffentlicht von HTTP-Antwortheader.

Strict-Transport-Security: max-age=31536000
Nach dem Login kopieren
Wenn der Browser diesen Header von einer HTTPS-Site sieht, weiß er, dass auf den Domainnamen nur über HTTPS (SSL oder TLS) zugegriffen werden kann. Und speichern Sie diese Informationen im Cache von 31536000, was einem Jahr entspricht.

Der optionale Parameter includeSubDomains teilt dem Browser mit, dass diese Richtlinie für alle Subdomains unter der aktuellen Domain gilt.

Strict-Transport-Security: max-age=31536000; includeSubDomains
Nach dem Login kopieren

nginx-Konfiguration HSTS

Setzen Sie den HSTS-Antwortheader in der Nginx-Konfigurationsdatei. Der Parameter

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Nach dem Login kopieren
always stellt sicher, dass alle Antworten diesen Header setzen, einschließlich intern generierter Fehlerantworten. Nginx-Versionen vor 1.7.5 unterstützen den Always-Parameter nicht und intern generierte Fehlerantworten setzen diese Header-Informationen nicht.

Vererbungsregeln für die Add_header-Direktive:

Der Nginx-Konfigurationsblock erbt den Kapselungsblock, in dem sich die Add_header-Direktive befindet, sodass Sie die Add_header-Direktive nur auf dem Server der obersten Ebene platzieren müssen Block. Es gibt auch eine wichtige Ausnahme: Wenn ein Block die add_header-Direktive selbst enthält, erbt er nicht den Header vom umschließenden Block und Sie müssen alle add_header-Direktiven neu definieren.

server {
    listen 443 ssl;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
 
    # This 'location' block inherits the STS header
    location / {
        root /usr/share/nginx/html;
    }
 
    # Because this 'location' block contains another 'add_header' directive,
    # we must redeclare the STS header
    location /servlet {
        add_header X-Served-By "My Servlet Handler";
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        proxy_pass http://localhost:8080;
    }
}
Nach dem Login kopieren
HTTP Strict Transport Security testen:

Sobald der Benutzer die HSTS-Richtlinie vorschlägt, wird der Cache-Informationszeitraum durch max-age angegeben. Während dieser Zeit verweigert der Browser den Zugriff auf den Webdienst über unverschlüsseltes HTTP und weigert sich, Ausnahmen für Zertifikatsfehler zu gewähren (sofern die Website zuvor ein gültiges und vertrauenswürdiges Zertifikat übermittelt hat). Wenn ein includeSubDomanis-Parameter angegeben ist, gelten diese Einschränkungen auch für alle Subdomains unter der aktuellen Domain.

Wenn Sie HSTS testen, stellen Sie die Höchstalterszeit kürzer ein.

Ob jede HTTPS-Antwort einen STS-Header haben muss:

Unser Ziel ist es, die HSTS-Richtlinie so schnell wie möglich darzustellen, wenn der Benutzer eine HTTPS-Antwort startet. Wenn sie während der Sitzung HSTS-Richtlinien erhalten, sind sie immer noch anfällig für HTTP-Hijacking-Angriffe. Der Browser muss sich den STS-Header nur einmal ansehen, daher ist es nicht unbedingt erforderlich, ihn zu jedem Standortblock und jeder Antwort hinzuzufügen. Es reicht jedoch möglicherweise nicht aus, es nur zur Startseite oder Anmeldeseite hinzuzufügen. Wenn Sie es nur zur zwischengespeicherten Antwort hinzufügen, wird es vom Client möglicherweise nicht angezeigt. Stellen Sie sicher, dass Sie so viel wie möglich von Ihrer URL abdecken und achten Sie dabei besonders auf dynamische Inhalte.

HTTP und HTTPS parallel

Manchmal muss die Website gleichzeitig unter HTTP und HTTPS laufen

server {
    listen  80;
    listen  443 ssl;
    ...
}
Nach dem Login kopieren
#🎜🎜 #Manchmal ist es notwendig, HTTP-Anfragen an https umzuleiten STS-Header zur Anweisung innerhalb des Max-Age-Zeitraums. Allerdings ist HSTS keine perfekte Lösung für HTTP-Session-Hijacking. Benutzer sind immer noch gefährdet, wenn sie über HTTP auf eine HSTS-geschützte Website zugreifen: 🎜🎜#Kürzlich das Betriebssystem neu installiert

Kürzlich den Browser neu installiert

#🎜 🎜#Zu einem neuen Browser wechseln# 🎜🎜#

Zu einem neuen Gerät wie einem Mobiltelefon wechseln

  1. Browser-Cache löschen

    # 🎜🎜#
  2. Die Website wurde in letzter Zeit nicht besucht und das Höchstalter ist abgelaufen

  3. Um dieses Problem zu lösen, Google besteht auf der Pflege eines Site-Domänennamens und eines Subdomänennamens mit einer „HSTS-Preload-Liste“ und übermittelt seinen Domänennamen über https://hstspreload.appspot.com/. Diese Liste von Domänennamen wird in den wichtigsten Webbrowsern verteilt und fest codiert. Clients, die auf Domänennamen in dieser Liste zugreifen, verwenden aktiv HTTPS und verweigern den Zugriff auf die Site über HTTP.

    Sobald der STS-Header festgelegt oder Ihre Domain an die HSTS-Preload-Liste übermittelt wurde, ist es nicht mehr möglich, ihn zu entfernen. Dies ist eine einseitige Entscheidung, Ihren Domainnamen über HTTPS verfügbar zu machen.

Das obige ist der detaillierte Inhalt vonWie Nginx HSTS konfiguriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server Apr 21, 2024 am 07:22 AM

Um dem Tomcat-Server den Zugriff auf das externe Netzwerk zu ermöglichen, müssen Sie Folgendes tun: Ändern Sie die Tomcat-Konfigurationsdatei, um externe Verbindungen zuzulassen. Fügen Sie eine Firewallregel hinzu, um den Zugriff auf den Tomcat-Server-Port zu ermöglichen. Erstellen Sie einen DNS-Eintrag, der den Domänennamen auf die öffentliche IP des Tomcat-Servers verweist. Optional: Verwenden Sie einen Reverse-Proxy, um Sicherheit und Leistung zu verbessern. Optional: Richten Sie HTTPS für mehr Sicherheit ein.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Willkommen bei Nginx! Wie kann ich es lösen? Willkommen bei Nginx! Wie kann ich es lösen? Apr 17, 2024 am 05:12 AM

Um den Fehler „Willkommen bei Nginx!“ zu beheben, müssen Sie die Konfiguration des virtuellen Hosts überprüfen, den virtuellen Host aktivieren, Nginx neu laden. Wenn die Konfigurationsdatei des virtuellen Hosts nicht gefunden werden kann, erstellen Sie eine Standardseite und laden Sie Nginx neu. Anschließend wird die Fehlermeldung angezeigt verschwindet und die Website wird normal angezeigt.

So generieren Sie eine URL aus einer HTML-Datei So generieren Sie eine URL aus einer HTML-Datei Apr 21, 2024 pm 12:57 PM

Für die Konvertierung einer HTML-Datei in eine URL ist ein Webserver erforderlich. Dazu sind die folgenden Schritte erforderlich: Besorgen Sie sich einen Webserver. Richten Sie einen Webserver ein. Laden Sie eine HTML-Datei hoch. Erstellen Sie einen Domainnamen. Leiten Sie die Anfrage weiter.

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

Was sind die häufigsten Anweisungen in einer Docker-Datei? Was sind die häufigsten Anweisungen in einer Docker-Datei? Apr 07, 2024 pm 07:21 PM

Die am häufigsten verwendeten Anweisungen in Dockerfile sind: FROM: Neues Image erstellen oder neues Image ableiten RUN: Befehle ausführen (Software installieren, System konfigurieren) COPY: Lokale Dateien in das Image kopieren ADD: Ähnlich wie COPY kann es automatisch dekomprimiert werden tar-Archive oder URL-Dateien abrufen CMD: Geben Sie den Befehl an, wenn der Container gestartet wird. EXPOSE: Deklarieren Sie den Container-Überwachungsport (aber nicht öffentlich). ENV: Legen Sie die Umgebungsvariable fest. VOLUME: Mounten Sie das Hostverzeichnis oder das anonyme Volume. WORKDIR: Legen Sie das Arbeitsverzeichnis im fest Container ENTRYPOINT: Geben Sie an, was beim Start des Containers ausgeführt werden soll. Ausführbare Datei (ähnlich wie CMD, kann aber nicht überschrieben werden)

Kann von außen auf Nodejs zugegriffen werden? Kann von außen auf Nodejs zugegriffen werden? Apr 21, 2024 am 04:43 AM

Ja, auf Node.js kann von außen zugegriffen werden. Sie können die folgenden Methoden verwenden: Verwenden Sie Cloud Functions, um die Funktion bereitzustellen und öffentlich zugänglich zu machen. Verwenden Sie das Express-Framework, um Routen zu erstellen und Endpunkte zu definieren. Verwenden Sie Nginx, um Proxy-Anfragen an Node.js-Anwendungen umzukehren. Verwenden Sie Docker-Container, um Node.js-Anwendungen auszuführen und sie über Port-Mapping verfügbar zu machen.

So stellen Sie eine Website mit PHP bereit und pflegen sie So stellen Sie eine Website mit PHP bereit und pflegen sie May 03, 2024 am 08:54 AM

Um eine PHP-Website erfolgreich bereitzustellen und zu warten, müssen Sie die folgenden Schritte ausführen: Wählen Sie einen Webserver (z. B. Apache oder Nginx). Installieren Sie PHP. Erstellen Sie eine Datenbank und verbinden Sie PHP. Laden Sie Code auf den Server hoch. Richten Sie den Domänennamen und die DNS-Überwachung der Website-Wartung ein Zu den Schritten gehören die Aktualisierung von PHP und Webservern sowie die Sicherung der Website, die Überwachung von Fehlerprotokollen und die Aktualisierung von Inhalten.

See all articles