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.

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/

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • So konfigurieren Sie nginx+php+mysql in Docker
  • Lösung für ungültige Nginx-Cross-Domain-Einstellung Access-Control-Allow-Origin
  • Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx
  • Verwenden Sie das Tool nginx.vim zur Syntaxhervorhebung und Formatierung der Konfigurationsdatei nginx.conf
  • Detaillierte Erläuterung der Fallstricke von add_header im Nginx-Konfigurationstutorial
  • Lösung für das Problem des Informationsverlusts mit "_" im Header bei Verwendung des Nginx-Proxys
  • 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
  • Einführung in das Batch-Cache-Löschskript von nginx proxy_cache

<<:  Das WeChat-Applet implementiert einen einfachen Rechner

>>:  Detaillierte Erklärung der Rolle des Schlüssels in React

Artikel empfehlen

Detaillierte Erklärung der grundlegenden HTML-Tags und -Strukturen

1. HTML-Übersicht 1.HTML: Hypertext Markup Langua...

Anwendungsszenario für die MySQL-Konfiguration mehrerer Instanzen

Inhaltsverzeichnis Mehrere MySQL-Instanzen Übersi...

Detaillierte Erklärung dieser Zeigerfunktion in JS

Die Pfeilfunktion ist eine neue Funktion in ES6. ...

Details zu MySQL-Zeittypen und -Modi

Inhaltsverzeichnis 1. MySQL-Zeittyp 2. Überprüfen...

Drei Möglichkeiten, doppeltes Einfügen von Daten in MySql zu vermeiden

Vorwort Im Falle eines Primärschlüsselkonflikts o...

So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu

Code und Beispiele direkt posten #Schreiben Sie K...

Vollständiges Beispiel einer Vue-Polling-Request-Lösung

Verständnis von Umfragen Tatsächlich liegt der Sc...

Hinweise zu Fallstricken bei Vuex und Pinia in Vue3

Inhaltsverzeichnis einführen Installation und Ver...

Eine detaillierte Einführung in for/of, for/in in JavaScript

Inhaltsverzeichnis In JavaScript gibt es mehrere ...

Mehrere Möglichkeiten zum einfachen Durchlaufen von Objekteigenschaften in JS

Inhaltsverzeichnis 1. Selbstaufzählbare Eigenscha...