Beispiel für eine HTTPS-Konfigurationsmethode für den Nginx-Server

Beispiel für eine HTTPS-Konfigurationsmethode für den Nginx-Server

Linux: Linux-Version 3.10.0-123.9.3.el7.x86_64

Nginx: nginx/1.6.3

openssl:1.0.1e

Zertifikat beantragen

Derzeit gibt es im Internet viele Organisationen, die kostenlose persönliche SSL-Zertifikate mit Gültigkeitsdauern von einigen Monaten bis zu einigen Jahren anbieten. Am Beispiel von StartSSL: https://www.startssl.com beträgt die Gültigkeitsdauer 3 Jahre nach erfolgreicher Beantragung und kann nach Ablauf kostenlos verlängert werden.

Auch der konkrete Bewerbungsprozess ist denkbar einfach.

Wählen Sie nach der Registrierung und Anmeldung „Zertifikatsassistent“ >> „DV-SSL-Zertifikat“, um ein kostenloses SSL-Zertifikat zu beantragen.

Nach der Verifizierung des Domainnamens per E-Mail generieren Sie den CSR des SSL-Zertifikats auf Ihrem eigenen Server. Merken Sie sich das eingegebene Geheimnis , das Sie später benötigen werden:

openssl req -newkey rsa:2048 -keyout weizhimiao.cn.key -out weizhimiao.cn.csr

Legen Sie das generierte Zertifikat in das angegebene Verzeichnis ab, beispielsweise /data/secret/ . Überprüfen Sie den Inhalt des Zertifikats weizhimiao.csr , kopieren Sie den Inhalt in den Abschnitt „Certificate Signing Request“ (CSR) auf der Seite und senden Sie die Seite ab.

Laden Sie das generierte Zertifikat herunter und wählen Sie den entsprechenden Webserver (Nginx, 1_weizhimiao.cn_bundle.crt) aus, sodass wir sowohl den privaten als auch den öffentlichen Schlüssel haben.

  • 1_weizhimiao.cn_bundle.crt (öffentlicher Schlüssel)
  • weizhimiao.cn.key (privater Schlüssel)

nginx-Konfiguration (https zum angegebenen Domänennamen hinzufügen)

Aktuelle Konfiguration von nginx.conf

...
http {
 ...
 schließen Sie /etc/nginx/conf.d/*.conf ein;

 Server {
  ...
 }
}

Zu ./conf.d/weizhimiao.cn.conf hinzufügen

Server{
 hören Sie 443 SSL;
 Servername weizhimiao.cn;

 SSL-Zertifikat /data/secret/1_weizhimiao.cn_bundle.crt;
 SSL-Zertifikatsschlüssel /data/secret/weizhimiao.cn.key;
 ssl_prefer_server_ciphers ein;
 SSL-Protokolle TLSv1 TLSv1.1 TLSv1.2;

 ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED';

 add_header Strict-Transport-Security 'max-age=31536000; Vorladen';
 add_header X-Frame-Optionen DENY;
 ssl_session_cache geteilt:SSL:10m;
 SSL-Sitzungszeitüberschreitung 10 Min.;
 KeepAlive-Timeout 70;
 ssl_dhparam /data/secret/dhparam.pem;

 add_header X-Inhaltstyp-Optionen nosniff;

 add_header X-Xss-Schutz 1;

 Stammverzeichnis /data/www/weizhimiao.cn;
 Index Index.html;

 Standort / {

 }
}

Notiz:

Die Konfiguration verwendet eine Datei /data/secret/dhparam.pem , die eine Schlüsseldatei im PEM-Format ist und in TLS-Sitzungen verwendet wird. Wird verwendet, um die SSL-Sicherheit zu verbessern. Generieren Sie diese Dateimethode,

cd /Daten/Geheimnis/
openssl dhparam 2048 -out dhparam.pem

Leiten Sie den ursprünglichen Zugriff auf Port 80 um. Zu ./conf.d/weizhimiao.cn.conf hinzufügen

Server{
 hören Sie 80;
 Servername weizhimiao.cn;
 Rückgabewert 301 https://weizhimiao.cn$request_uri;
}

prüfen

Überprüfen Sie, ob die Konfigurationsdatei Syntaxfehler enthält. Sie müssen das Passwort eingeben, das Sie bei der Generierung des öffentlichen Schlüssels vergeben haben.

nginx -t
Geben Sie die PEM-Passphrase ein:
nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung
nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich

Starten Sie Nginx neu (denken Sie daran, dass Neuladen nicht funktioniert)

nginx -s stoppen
Geben Sie die PEM-Passphrase ein:
nginx
Geben Sie die PEM-Passphrase ein:

Greifen Sie über den Browser auf weizhimiao.cn zu und prüfen Sie, ob es effektiv ist.

Nachdem Nginx mit einem Sicherheitszertifikat konfiguriert wurde, müssen Sie außerdem bei jedem Neuladen, Stoppen und anderen Vorgängen auf Nginx ein Kennwort eingeben.

Sie können eine entschlüsselte Schlüsseldatei generieren, um die ursprüngliche Schlüsseldatei zu ersetzen.

cd /Daten/Geheimnis/
openssl rsa -in weizhimiao.cn.key -out weizhimiao.cn.key.unsecure

Ersetzen Sie die Datei weizhimiao.cn.key in weizhimiao.cn.conf .

Server {
 ...
 SSL-Zertifikat /data/secret/1_weizhimiao.cn_bundle.crt;
 SSL-Zertifikatsschlüssel /data/secret/weizhimiao.cn.key.unsecure;
 ...
}

Danach ist eine erneute Eingabe des Passwortes bei jedem Neuladen nicht mehr nötig.

Verwenden Sie abschließend SSLLABS, um es zu testen.

Ergebnis

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierung von HTTP- und HTTPS-Diensten mit Nginx-Reverse-Proxy für mehrere Domänennamen
  • Zwei Möglichkeiten zur Implementierung des Nginx https Reverse Proxy Tomcat
  • Detaillierte Erklärung zur korrekten Umleitung von Nginx-Server-HTTP auf HTTPS
  • Tutorial zum Erstellen eines Nginx-HTTP-Servers
  • Detaillierte Erläuterung der Konfiguration von HTTPS (NGINX) auf dem Alibaba Cloud LINUX-Server
  • So erstellen Sie einen HTTPS-Server mit Nginx und erzwingen den HTTPS-Zugriff
  • Probleme bei der Konfiguration von https-Server und Reverse-Proxy mit Nginx unter Windows

<<:  So legen Sie die Anzahl der MySQL-Verbindungen fest (zu viele Verbindungen)

>>:  JavaScript zum Erzielen eines Akkordeoneffekts

Artikel empfehlen

Designreferenz Schönes und originelles Blog-Design

Alle unten aufgeführten Blogs sind originell und ...

Einführung in den glibc-Upgradeprozess für Centos6.5

Inhaltsverzeichnis Szenarioanforderungen glibc-Ve...

Lösung für den Fehler „MySQL-Server ist verschwunden“

MySQL-Server hat Problem in PHP behoben 1. Hinter...

Teilen Sie 8 MySQL-Fallstricke, die Sie erwähnen müssen

MySQL ist einfach zu installieren, schnell und ve...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...

Tutorial zum Anmelden bei MySQL nach der Installation von Mysql 5.7.17

Die Installation von mysql-5.7.17 wird weiter unt...

Native Js-Implementierung des Kalender-Widgets

In diesem Artikelbeispiel wird der spezifische JS...

Lösung für MySQL-Fehler beim Ändern des SQL-Modus

Inhaltsverzeichnis Ein Mord verursacht durch ERR ...

Verwenden Sie js in html, um die lokale Systemzeit abzurufen

Code kopieren Der Code lautet wie folgt: <div ...