So konfigurieren Sie die bidirektionale Zertifikatsüberprüfung auf dem Nginx-Proxyserver

So konfigurieren Sie die bidirektionale Zertifikatsüberprüfung auf dem Nginx-Proxyserver

Generieren einer Zertifikatskette

Verwenden Sie das Skript, um ein Stammzertifikat, ein Zwischenzertifikat und drei Client-Zertifikate zu generieren.

Das Skript ist abgeleitet von (modifiziert)
https://stackoverflow.com/questions/26759550/wie-erstelle-man-ein-eigenes-Signed-Root-Zertifikat-und-ein-Intermediate-CA-das-man-importieren-kann

Der Domänenname des Zwischenzertifikats ist localhost.

#!/bin/bash -x

setze -e

für C in „echo root-ca intermediate“;

 mkdir $C
 CD $C
 mkdir certs crl newcerts privat
 CD ..

 echo 1000 > $C/seriell
 berühren Sie $C/index.txt $C/index.txt.attr

 Echo '
[ ca ]
default_ca = CA_Standard
[ CA_Standard ]
dir = '$C' # Wo alles aufbewahrt wird
certs = $dir/certs # Wo die ausgestellten Zertifikate aufbewahrt werden
crl_dir = $dir/crl # Wo die ausgestellten CRLs aufbewahrt werden
Datenbank = $dir/index.txt # Datenbankindexdatei.
new_certs_dir = $dir/newcerts # Standardspeicherort für neue Zertifikate.
certificate = $dir/cacert.pem # Das CA-Zertifikat
serial = $dir/serial # Die aktuelle Seriennummer
crl = $dir/crl.pem # Die aktuelle CRL
private_key = $dir/private/ca.key.pem # Der private Schlüssel
RANDFILE = $dir/.rnd # private Zufallszahlendatei
nameopt = default_ca
certopt = default_ca
Richtlinie = Richtlinienübereinstimmung
Standardtage = 365
Standardmd = sha256

[ Richtlinienübereinstimmung ]
countryName = optional
stateOrProvinceName = optional
Organisationsname = optional
organizationalUnitName = optional
commonName = angegeben
E-Mail-Adresse = optional

[Anforderung]
req_extensions = v3_req
Distinguished_Name = erforderlicher Distinguished_Name

[erforderlicher_Name]

[v3_erforderlich]
Grundeinschränkungen = CA:TRUE
' > $C/openssl.conf
Erledigt

openssl genrsa -out root-ca/private/ca.key 2048
openssl req -config root-ca/openssl.conf -new -x509 -days 3650 -key root-ca/private/ca.key -sha256 -extensions v3_req -out root-ca/certs/ca.crt -subj '/CN=Root-ca'

openssl genrsa -out Zwischen-/Privat-/Zwischenschlüssel 2048
openssl req -config intermediate/openssl.conf -sha256 -new -key intermediate/private/intermediate.key -out intermediate/certs/intermediate.csr -subj '/CN=localhost.'
openssl ca -batch -config root-ca/openssl.conf -keyfile root-ca/private/ca.key -cert root-ca/certs/ca.crt -extensions v3_req -notext -md sha256 -in intermediate/certs/intermediate.csr -out intermediate/certs/intermediate.crt

mkdir aus

für I in `seq 1 3`; mache
 openssl req -new -keyout out/$I.key -out out/$I.request -days 365 -nodes -subj "/CN=$I.example.com" -newkey rsa:2048
 openssl ca -batch -config root-ca/openssl.conf -keyfile intermediate/private/intermediate.key -cert intermediate/certs/intermediate.crt -out out/$I.crt -infiles out/$I.request
Erledigt

Server

Nginx-Konfiguration

Arbeiterprozesse 1;

Ereignisse {
  Arbeiterverbindungen 1024;
}

Strom{
  Upstream-Backend{
    Server 127.0.0.1:8080;
  }

  Server {
    hören Sie 8888 SSL;
    Proxy_Pass-Backend;
    ssl_zertifikat zwischengeschaltet.crt;
    ssl_zertifikatsschlüssel Zwischenschlüssel;
    ssl_überprüfen_tiefe 2;
    ssl_client_zertifikat root.crt;
    ssl_verify_client optional_no_ca;
  }
}

Kunde

Locke \
 -ICH \
 -vv \
 -x https://localhost:8888/ \
 --proxy-cert client1.crt \
 --proxy-key client1.key \
 --proxy-cacert ca.crt \
 https://www.baidu.com/

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:
  • So konfigurieren Sie den virtuellen Nginx-Host in CentOS 7.3
  • Detaillierte Bereitstellung von Django uwsgi Nginx in der Produktionsumgebung
  • Detaillierte Erklärung des Kommunikationsmechanismus zwischen PHP-FPM und Nginx
  • Detaillierte Erläuterung der Verwendung des Nginx-Reverse-Proxys zur Lösung domänenübergreifender Probleme
  • Shell-Skript Nginx-Automatisierungsskript
  • So erstellen Sie einen Nginx-Server mit Docker
  • Eine kurze Erläuterung, warum Daemon Off beim Ausführen von Nginx in Docker verwendet wird
  • So führen Sie nginx in Docker aus und mounten das lokale Verzeichnis in das Image
  • So konfigurieren Sie https für Nginx in Docker
  • So konfigurieren Sie die bidirektionale Zertifikatsüberprüfung auf dem Nginx-Proxyserver

<<:  jQuery implementiert die Praxis, die Position und Größe von div durch Ziehen der Maus zu ändern

>>:  Zwei Möglichkeiten zum Zurücksetzen des Root-Passworts einer MySQL-Datenbank mit lnmp

Artikel empfehlen

Wie implementiert MySQL ACID-Transaktionen?

Vorwort Kürzlich wurde ich in einem Interview gef...

Lösung für vergessenes Linux MySQL-Root-Passwort

Wenn Sie sich bei der Verwendung der MySQL-Datenb...

Docker Detaillierte Abbildungen

1. Einführung in Docker 1.1 Virtualisierung 1.1.1...

MySQLs Methode zum Umgang mit doppelten Daten (Verhindern und Löschen)

Einige MySQL-Tabellen können doppelte Datensätze ...

Fehler mit ungerader Breite und Höhe in IE6

Wie in der Abbildung gezeigt: Aber bei der Anzeig...

HTML-Formular_PowerNode Java Academy

1. Formular 1. Die Rolle des Formulars HTML-Formu...

Zusammenfassung der Unterschiede zwischen HTML, SHHTML und XHTML

Zum Beispiel: <u> Dies hat kein Endzeichen u...

Detaillierte Erklärung der wichtigsten Einzigartigkeit von v-for in Vue

Inhaltsverzeichnis 1. DOM-Diff 2. Fügen Sie Eleme...

Ein tiefes Verständnis der spitzen Klammern in Bash (für Anfänger)

Vorwort Bash verfügt über viele wichtige integrie...

Das WeChat-Applet verwendet die Videoplayer-Videokomponente

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

MySQL Null kann 5 Probleme verursachen (alle schwerwiegend)

Inhaltsverzeichnis 1. Zähldaten gehen verloren Lö...

Zusammenfassung häufig verwendeter Escape-Zeichen in HTML

Die in HTML häufig verwendeten Escape-Zeichen wer...