Hintergrund Heutzutage werden die Projekte des Unternehmens so entwickelt, dass Front-End und Back-End getrennt sind. Manchmal möchte ich aufgrund neuer Entwicklungsanforderungen oder Fehlerbehebungen, dass das Front-End zum Debuggen eine direkte Verbindung zu meiner lokalen Entwicklungsumgebung herstellt, aber ich habe den Front-End-Code nicht und kann ihn daher nur über die vom Front-End bereitgestellte Testumgebung testen. Am einfachsten ist es, den Host direkt zu ändern, damit der Domänenname der Back-End-Testumgebung auf meine lokale IP verweist. Dies ist für HTTP-Protokolldienste sehr einfach, aber die Testumgebung des Unternehmens verwendet ausschließlich HTTPS und mein lokaler Dienst verwendet das HTTP-Protokoll. Selbst wenn der Host geändert wird, schlägt die Anforderung aufgrund der unterschiedlichen Protokolle fehl, sodass der lokale Dienst auf HTTPS aktualisiert werden muss. planen Tatsächlich unterstützt Springboot selbst HTTPS (howto-configure-ssl), aber dazu muss der Projektcode geändert werden, was nicht sehr elegant ist. Daher möchte ich Ausstellung von Zertifikaten Zuerst müssen Sie einen Satz Zertifikate für die SSL-Konfiguration von nginx generieren. Verwenden Sie das Tool Stammzertifikatgenerierung # Generieren Sie einen privaten RSA-Schlüssel openssl genrsa -out root.key 2048 # Generieren Sie ein Stammzertifikat mit dem privaten Schlüssel openssl req -sha256 -new -x509 -days 365 -key root.key -out root.crt \ -subj "/C=CN/ST=GD/L=SZ/O=lee/OU=Arbeit/CN=fakerRoot" Generierung von Serverzertifikaten # Generieren Sie einen privaten RSA-Schlüssel openssl genrsa -out server.key 2048 # Erstellen Sie eine Zertifikatsignieranforderungsdatei mit der SAN-Erweiterung openssl req -new \ -sha256 \ -key server.schlüssel \ -subj "/C=CN/ST=GD/L=SZ/O=lee/OU=Arbeit/CN=xxx.com" \ -erfordert SAN \ -config <(cat /etc/pki/tls/openssl.cnf \ <(printf "[SAN]\nsubjectAltName=DNS:*.xxx.com,DNS:*.test.xxx.com")) \ -out server.csr # Verwenden Sie das zuvor generierte Stammzertifikat zum Ausgeben von openssl ca -in server.csr \ -md sha256 \ -keyfile root.schlüssel \ -cert root.crt \ -Erweiterungen SAN \ -config <(cat /etc/pki/tls/openssl.cnf \ <(printf "[SAN]\nsubjectAltName=DNS:xxx.com,DNS:*.test.xxx.com")) \ -out server.crt Dadurch erhalten wir drei Schlüsseldateien:
Hinweis: Der Domänenname des generierten Serverzertifikats muss den Domänennamen unterstützen, auf den die Testumgebung zugreift. Andernfalls meldet der Browser, dass das Zertifikat nicht sicher ist. Nginx-Konfiguration Der Einfachheit halber starten wir für den Zugriff direkt über nginx.conf Server { hören Sie 443 SSL; Servername _; ssl_certificate "/usr/local/nginx/ssl/server.pem"; ssl_certificate_key "/usr/local/nginx/ssl/server.key"; Standort / { Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; Proxy_set_header X-Weitergeleitet-Proto $scheme; Proxy_set_header Host $http_host; Proxy_set_header X-NginX-Proxy wahr; Proxy_Set_Header-Upgrade $http_upgrade; proxy_set_header Verbindung "Upgrade"; Proxy-Passwort http://127.0.0.1:3000; Proxy_Redirect aus; Proxy_http_Version 1.1; } } Geben Sie das Zertifikat und den privaten Schlüssel des Servers an, indem Sie Start-up docker run -d --name https -p 443:443 -v ~/forword/ssl:/usr/local/nginx/ssl -v ~/forword/config/nginx.conf:/etc/nginx/conf.d/default.conf nginx Hängen Sie die Nginx-Konfigurations- und Zertifikatsdateien in das entsprechende Verzeichnis ein und geben Sie Port 443 frei, damit Sie nach dem Start des Dienstes über https auf die lokale Entwicklungsumgebung zugreifen können. Installieren des Stammzertifikats Da das Dienstzertifikat selbstsigniert ist und vom Browser nicht als vertrauenswürdig angesehen wird, muss Öffnen Sie den Chrome-Browser->Einstellungen->Erweitert->Zertifikate verwalten Vertrauenswürdige Stammzertifizierungsstellen -> Importieren Wählen Sie das zuvor generierte Stammzertifikat Host ändern Wenn ein Debugging erforderlich ist, müssen Sie nur den lokalen Dienst starten, den zu testenden Domänennamen im Host in die IP des Nachtrag Tatsächlich wurden in diesem Artikel zwei Lösungen erwähnt. Tatsächlich gibt es noch weitere Lösungen, wie beispielsweise die Verwendung 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:
|
>>: Detaillierte Erläuterung des grundlegenden Implementierungsprinzips von MySQL DISTINCT
Downloadlink: Betriebsumgebung CentOS 7.6 in eine...
Konfigurieren Sie mehrere Server in nginx.conf: B...
Als ich mein primäres Betriebssystem von Windows ...
1. Erstellen Sie eine Tabelle mit HTML-Tags: Code...
Inhaltsverzeichnis 1. Anonyme Slots 2. Benannte S...
Ein Wort vorab: Plötzlich erhielt ich die Aufgabe...
1. Parallelität Die wichtigste Funktion einer OLT...
Daten in MySQL-Datenbank einfügen. Bisher häufig ...
Vorwort Das MySQL Slow Query Log ist eine Funktio...
Schritt 1. Aktivieren Sie die langsame MySQL-Abfr...
Inhaltsverzeichnis brauchen: Ideen: Lektion: Teil...
Erstellen Sie zunächst einen Tomcat-Ordner. Um di...
Wenn Ihr aktueller Pfad beispielsweise /var/log i...
Code kopieren Der Code lautet wie folgt: <a hr...
Inhaltsverzeichnis 1. Globale Wache 1. Globale Fr...