Heim  >  Artikel  >  Betrieb und Instandhaltung  >  HTTPS-Bereitstellung und Sicherheitsleistungsoptimierung von Nginx

HTTPS-Bereitstellung und Sicherheitsleistungsoptimierung von Nginx

WBOY
WBOYOriginal
2023-06-10 17:13:401107Durchsuche

Nginx wird als Hochleistungs-Webserver und Reverse-Proxy-Server häufig für die Anwendungsbereitstellung und den Lastausgleich verwendet. Mit der schrittweisen Verbesserung des Sicherheits- und Umweltschutzbewusstseins ist HTTPS auch aus modernen Webanwendungen nicht mehr wegzudenken. Dieser Artikel konzentriert sich auf die HTTPS-Bereitstellung und die Optimierung der Sicherheitsleistung von Nginx.

1. HTTPS-Bereitstellung von Nginx

  1. Zertifikatantrag

Zuerst müssen Sie sich an die Zertifizierungsstelle (CA) wenden, um ein SSL-Zertifikat zu beantragen. Nach erfolgreicher Bewerbung erhalten Sie eine Zertifikatsdatei (.crt) und eine private Schlüsseldatei (.key).

  1. HTTPS-Konfiguration

Die HTTPS-Konfiguration von Nginx muss drei Aspekte umfassen: HTTP-Weiterleitung an HTTPS, Nginx-Zertifikatkonfiguration und HTTPS-Konfiguration.

(1) HTTP an HTTPS weiterleiten

In der Nginx-Konfigurationsdatei müssen Sie einen Abschnitt der HTTP-Konfiguration hinzufügen, damit Benutzer beim Zugriff auf den HTTP-Standardport 80 automatisch zum Standardport 443 von HTTPS springen können.

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

(2) Nginx-Zertifikatkonfiguration

In der Nginx-Konfigurationsdatei müssen Sie das SSL-Zertifikat und die private Schlüsseldatei, die Sie gerade beantragt haben, zur Konfigurationsdatei hinzufügen.

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;
    ...
}

(3) HTTPS-Konfiguration

Sie müssen bestimmte Optionen des HTTPS-Protokolls konfigurieren, z. B. das Aktivieren des HTTP/2-Protokolls, das Deaktivieren von SSLv3 usw.

http2_push_preload on;  #启用HTTP/2协议的推送预加载
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #指定启用的TLS协议版本
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;  #指定加密套件
ssl_prefer_server_ciphers on;  #常用加密套件优先顺序为服务端指定的值
ssl_session_cache shared:SSL:10m;  #指定SSL session缓存
ssl_session_timeout 10m;  #指定SSL session超时时间

2. Nginx-Sicherheitsleistungsoptimierung

Nach der Bereitstellung des HTTPS-Dienstes müssen Sie auch auf die folgenden Probleme bei der Sicherheitsleistungsoptimierung achten, um die Stabilität und Sicherheit des Dienstes zu gewährleisten:

  1. OCSP-Antwort erkennen

OCSP (Online Certificate Status Protocol) wird verwendet, um zu erkennen, ob ein Zertifikat widerrufen wurde. In der HTTPS-Konfiguration von Nginx kann die OCSP-Antworterkennung durch die folgenden Verfahren durchgeführt werden:

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;

Die wichtigsten Punkte werden wie folgt interpretiert:

  • ssl_stapling on OCSP-Antwort einschalten
  • ssl_stapling_verify on OCSP-Antwortüberprüfung einschalten
  • ssl_trusted_certificate /path /to/fullchain .pem Zertifikatskette konfigurieren
  • resolver 8.8.8.8 8.8.4.4 valid=300s DNS-Resolver konfigurieren
  • resolver_timeout 10s DNS-Auflösungszeit konfigurieren
    Der DNS-Resolver muss als anerkannter vertrauenswürdiger Resolver konfiguriert werden, hier wird er konfiguriert als öffentliches DNS von Google.
  1. HSTS aktivieren

HSTS (HTTP Strict Transport Security) verhindert, dass Benutzer auf HTTP-Seiten gekapert werden, wodurch die Sicherheitsstufe erhöht wird. In der HTTPS-Konfiguration von Nginx können Sie HSTS wie folgt aktivieren:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Die wichtigsten Punkte werden wie folgt erklärt:

  • max-age=31536000 Definieren Sie die Dauer des HSTS-Headers
  • includeSubDomains Alle Subdomains aktivieren
  1. Sicherheitsprotokoll aktivieren

Standardmäßig aktiviert Nginx nur TLSv1 und TLSv1.2. Wenn Sie andere Verschlüsselungsprotokolle aktivieren müssen, können Sie es wie folgt konfigurieren:

ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

Die wichtigsten Punkte werden wie folgt interpretiert:

  • TLSv1.3 definiert aktiviert. Das Verschlüsselungsprotokoll aktiviert den HMAC-Schlüsselalgorithmus. Über HTTPS übertragene Daten erfordern einen Schlüssel zum Verschlüsseln der Daten. Die Verwendung von HMAC (Hash-basierter Nachrichtenauthentifizierungscode) kann die Sicherheit der Datenübertragung verbessern. Die Methode zum Aktivieren von HMAC in der Nginx-Konfigurationsdatei lautet wie folgt:
  • ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;
Die wichtigsten Punkte werden wie folgt interpretiert:
  1. AES256 AES256-Verschlüsselungsalgorithmus aktivieren

+SHA256 SHA256-Hash-Funktion aktivieren

+HMAC HMAC-Schlüsselalgorithmus aktivieren

  • Fazit
  • In diesem Artikel werden die wichtigsten Wissenspunkte zur Nginx-HTTPS-Bereitstellung und Optimierung der Sicherheitsleistung vorgestellt. Im Kontext immer komplexer werdender moderner Webanwendungen werden auch die Sicherheits- und Leistungsanforderungen von HTTPS immer höher. Als Systemmanager ist es wichtig, seine Wissensreserven ständig zu aktualisieren und einen professionellen Blick auf neue Technologien und neue Umgebungen zu bewahren . Sehr notwendig und wichtig.

Das obige ist der detaillierte Inhalt vonHTTPS-Bereitstellung und Sicherheitsleistungsoptimierung von Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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