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

Vue implementiert die Countdown-Komponente für zweite Kills

In diesem Artikel wird der spezifische Code von V...

Einführung in 10 Hooks in React

Inhaltsverzeichnis Was ist ReactHook? React biete...

So nutzen Sie die Multi-Core-CPU in node.js voll aus

Inhaltsverzeichnis Überblick So nutzen Sie die Mu...

Beispielcode zur Installation von ElasticSearch und Kibana unter Docker

1. Einleitung Elasticsearch erfreut sich derzeit ...

Detailliertes Tutorial zur automatischen Installation von CentOS7.6 mit PXE

1. Nachfrage Die Basis verfügt über 300 neue Serv...

Lösung zur Deinstallation von Python und Yum im CentOs-System

Hintergrund des Unfalls: Vor einigen Tagen habe i...

Einfache Analyse von EffectList in React

Inhaltsverzeichnis EffectList-Sammlung Effektlist...

MySQL-Dateneinfügungsoptimierungsmethode concurrent_insert

Wenn ein Thread eine DELAYED-Anweisung für eine T...

Detaillierte Erläuterung der häufig verwendeten Filter von Tomcat

Inhaltsverzeichnis 1. Domänenübergreifender Filte...

So zeigen Sie verfügbare Netzwerkschnittstellen in Linux an

Vorwort Die häufigste Aufgabe nach der Installati...