Beispielcode zur Implementierung der bidirektionalen Authentifizierung mit Nginx+SSL

Beispielcode zur Implementierung der bidirektionalen Authentifizierung mit Nginx+SSL

Erstellen Sie zunächst ein Verzeichnis

cd /etc/nginx
mkdir ssl
SSL-Verschlüsselung

CA vs. selbstsigniert

Erstellen eines privaten CA-Schlüssels

openssl genrsa -out ca.key 2048

Erstellen eines CA-Stammzertifikats (öffentlicher Schlüssel)

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

Beachten:

1. Der allgemeine Name kann nach Belieben ausgefüllt werden
2. Um Fehler zu vermeiden, füllen Sie bitte auch alle weiteren erforderlichen Angaben aus.

Server-Zertifikat

Erstellen Sie einen serverseitigen privaten Schlüssel:

openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key

Generieren Sie eine Signaturanforderung:

openssl req -new -key server.pem -out server.csr

Beachten:

1. Der allgemeine Name muss beim Zugriff auf den Dienst mit dem Domänennamen ausgefüllt werden. Hier verwenden wir usb.dev. Die folgende NGINX-Konfiguration verwendet
2. Um Fehler zu vermeiden, füllen Sie alle anderen erforderlichen Informationen aus (um sie mit dem CA-Stammzertifikat abzugleichen).

Ausgestellt von CA

openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

Client-Zertifikate

Ähnlich wie das Server-Zertifikat

Beachten:

1. Der allgemeine Name kann nach Belieben ausgefüllt werden
2. Um Fehler zu vermeiden, füllen Sie alle anderen erforderlichen Informationen aus (um sie mit dem CA-Stammzertifikat abzugleichen).

Nachdem die erforderlichen Zertifikate vorhanden sind, können wir mit der Konfiguration von NGINX beginnen.

Nginx-Konfiguration

Server {
    hören Sie 443;
    Servername usb.dev;

    Index Index.html;

    Stammverzeichnis /Daten/Test/;

    SSL aktiviert;
    SSL-Zertifikat /etc/nginx/ssl/server.crt;
    SSL-Zertifikatsschlüssel /etc/nginx/ssl/server.key;
    SSL-Clientzertifikat /etc/nginx/ssl/ca.crt;
    ssl_verify_client ein;
}

Bestätigung anfordern

Der Überprüfungsprozess kann auf einem anderen Computer oder auf dem lokalen Computer durchgeführt werden. Um usb.dev aufzulösen, müssen Sie auch /etc/hosts konfigurieren:

IP-Adresse usb.dev

Wenn Sie zur Authentifizierung einen Browser verwenden, müssen Sie das Client-Zertifikat in das P12-Format exportieren.

openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12

Laden Sie mehrere Zertifikate vom Server herunter und installieren Sie sie in der Liste der vertrauenswürdigen Zertifikate. Klicken Sie auf die soeben generierte p12-Datei und geben Sie das Zertifikatkennwort ein, um sie in der persönlichen Liste zu installieren.
Schließen Sie anschließend den Browser und geben Sie den Domänennamen erneut ein. Daraufhin wird eine Zertifikatsaufforderung zur bidirektionalen SSL-Verifizierung angezeigt. Wählen Sie einfach das Zertifikat aus.

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:
  • Beispiel für die Konfiguration von nginx zur Implementierung von SSL
  • Starten Sie die auf Docker basierende nginxssl-Konfiguration
  • Lösung für den Konfigurationsfehler des Nginx-SSL-Zertifikats
  • Konfiguration des SSL-Zertifikats für den Nginx-Domänennamen (Website-HTTP auf https aktualisiert)
  • Implementierung der Nginx-Lastverteilung/SSL-Konfiguration
  • So konfigurieren Sie ein SSL-Zertifikat in Nginx, um den HTTPS-Dienst zu implementieren
  • Einfache Schritte zum Konfigurieren des Nginx-Reverse-Proxys mit SSL
  • Detaillierte Erläuterung der Nginx-Installation, SSL-Konfiguration und allgemeinen Befehle unter Centos7.x
  • Schritte zum Konfigurieren von Nginx SSL zur Implementierung des HTTPS-Zugriffs (für Anfänger geeignet)
  • Erstellen Sie ein SSL-Zertifikat, das in nginx und IIS verwendet werden kann

<<:  Detaillierte Einführung in das MySQL-Schlüsselwort Distinct

>>:  Vollständiger Code zur Implementierung der Vue-Backtop-Komponente

Artikel empfehlen

Ausführliche Erläuterung versteckter Felder, einer neuen Funktion von MySQL 8.0

Vorwort MySQL Version 8.0.23 fügt eine neue Funkt...

js implementiert Axios Limit-Anforderungswarteschlange

Inhaltsverzeichnis Der Hintergrund ist: Was wird ...

So richten Sie Textfelder in mehreren Formularen in HTML aus

Der Formularcode ist wie in der Abbildung dargest...

So implementieren Sie die Navigationsfunktion im WeChat Mini-Programm

1. Rendern2. Bedienungsschritte 1. Beantragen Sie...

Optimierung der MySQL 4G-Speicherserverkonfiguration

Da die Anzahl der Besuche auf der Website des Unt...

So installieren Sie MySQL für Anfänger (erwiesenermaßen effektiv)

1. Software-Download MySQL-Download und -Installa...

So verwenden Sie das JQuery-Editor-Plugin tinyMCE

Ändern Sie die vereinfachte Dateigröße und laden ...

Lösen Sie das Problem der Groß- und Kleinschreibung der Linux+Apache-Server-URL

Ich bin heute auf ein Problem gestoßen. Beim Eing...

HTML als Startseite festlegen und zu Favoriten hinzufügen_Powernode Java Academy

So implementieren Sie die Funktionen „Als Startse...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

Das WeChat-Applet realisiert eine Links-Rechts-Verknüpfung

In diesem Artikel wird der spezifische Code für d...

Analyse des Prinzips und der Verwendung von MySQL-Benutzerdefinierten Funktionen

Dieser Artikel veranschaulicht anhand von Beispie...

Vollständige MySQL-Lernhinweise

Inhaltsverzeichnis MyISAM und InnoDB Gründe für L...