1. HintergrundIch habe eine Website zur Datenanzeige, die Nginx verwendet, um externen HTTP-Zugriff bereitzustellen, und ein anderes System verwendet einen Hyperlink, um für den Zugriff der Endbenutzer zu meiner Website zu springen. Später sagte die andere Partei, dass der Zugriff auf ihre Site über https erfolgt und nicht direkt über http, sodass ich den https-Zugriff unterstützen muss. Dies ist also nur eine Referenz für Anzeigewebsites, ich weiß nicht, wie man interaktive Websites erstellt. ***Mein Verständnis von nginx beschränkt sich auf die Konfiguration des Website-Zugriffs über Konfigurationsdateien und ich habe keine tieferen Kenntnisse über andere Dinge. *** 2. Voraussetzungen https:HTTPS (vollständiger Name: Hyper Text Transfer Protocol over Secure Socket Layer oder Hypertext Transfer Protocol Secure) ist ein HTTP-Kanal mit dem Ziel der Sicherheit. Einfach ausgedrückt handelt es sich um eine sichere Version von HTTP. Das heißt, die SSL-Schicht wird unter HTTP hinzugefügt. Die Sicherheitsgrundlage von HTTPS ist SSL, daher erfordern die verschlüsselten Details SSL. Einfach ausgedrückt ist das Zertifikat in die Website eingebettet und die Daten werden verschlüsselt, wenn der Benutzer über den Browser mit dem Website-Server interagiert, um die Sicherheit zu gewährleisten. Zertifikatssystem:Die Baumstruktur kann mehrere Ebenen von Zertifizierungsstellen aufweisen. Die oberste Ebene wird als Stammzertifizierungsstelle bezeichnet. Sie besitzt den privaten Schlüssel des Stammzertifikats und kann die Zertifikate der nächsten Ebene ausstellen. Das von jeder Organisation oder Person verwendete Zertifikat wird von einer Zertifizierungsstelle ausgestellt. Einfach ausgedrückt verwendet die ausstellende Stelle ihren privaten Schlüssel, um die persönlichen Daten, den öffentlichen Schlüssel und andere Informationen des Zertifikatsinhabers digital zu signieren und der Außenwelt mitzuteilen, dass das Zertifikat von ihr zertifiziert wurde. Das Zertifikat ist öffentlich zugänglich, um die Identität des Inhabers zu überprüfen, und wird von der ausstellenden Behörde bestätigt. Der dem Zertifikat entsprechende private Schlüssel befindet sich im Besitz des Inhabers und wird nicht öffentlich zugänglich gemacht. Er wird verwendet, um private Nachrichten zu entschlüsseln, die von anderen mit dem öffentlichen Schlüssel im Zertifikat verschlüsselt wurden. Es ist in gewisser Weise ähnlich wie die Ausstellung von Personalausweisen durch die öffentlichen Sicherheitsbehörden. Auf höchster Ebene im ganzen Land gibt es ein Ministerium für öffentliche Sicherheit, das für die Verwaltung aller öffentlichen Sicherheitsbüros auf Provinzebene verantwortlich ist, und die Provinzebene ist für die kommunale Ebene verantwortlich, ... und letztendlich stellt die Polizeistation den einzelnen Personen Personalausweise aus. Mit unseren Personalausweisen können wir der Außenwelt unsere Identität nachweisen, denn sie sind von der Polizeistation beglaubigt, und die Polizeistation hat die Beglaubigung ihrer Vorgesetzten, und deren Vorgesetzte bis hinauf zum Ministerium für öffentliche Sicherheit. Der Unterschied besteht darin, dass unser Personalausweis nicht so viele Informationen enthält wie das Zertifikat. Hinweis: Das Zertifikat basiert auf dem Public-Key-Kryptographiesystem, das zwei Schlüssel umfasst: den öffentlichen und den privaten Schlüssel. Der öffentliche Schlüssel wird zur Verschlüsselung und Signaturüberprüfung verwendet, während der private Schlüssel zur Entschlüsselung und Signatur verwendet wird. 3. Betriebsablauf 3.1 ZertifikatserstellungDer Hauptprozess ist: Stammzertifikat --> Serverzertifikat. Das Serverzertifikat bezieht sich hier auf den oben erwähnten Website-Server, der https-Zugriff hinzufügen muss. 1. Generieren Sie den privaten Schlüssel des Stammzertifikats, generieren Sie die Stammzertifikatsanforderung und erstellen Sie ein selbstsigniertes Stammzertifikat #Generieren Sie den privaten Schlüssel des Stammzertifikats openssl genrsa -out root.key 2048 #Stammzertifikatsanforderung generieren openssl req -new -key root.key -out root.csr #Generieren Sie ein Stammzertifikat mit dem privaten Schlüssel des Stammzertifikats openssl x509 -req -in root.csr -extensions v3_ca -signkey root.key -out root.crt Der Grund für das selbstsignierte Zertifikat mit dem privaten Schlüssel des Stammzertifikats besteht darin, dass das Format der Zertifikate einheitlich ist und von einer Zertifizierungsstelle ausgestellt werden muss. Da die Stammzertifizierungsstelle keinen Vorgesetzten hat, stellt die Stammzertifizierungsstelle ein Zertifikat für sich selbst aus, sodass jeder ihr vertrauen muss. 2. Generieren Sie einen privaten Schlüssel für das Serverzertifikat, generieren Sie eine Serverzertifikatsanforderung und verwenden Sie den privaten Schlüssel des Stammzertifikats, um ein Serverzertifikat auszustellen. Beachten Sie, dass der allgemeine Name dieses Serverzertifikats in der Nginx-Konfigurationsdatei auf den Servernamen gesetzt werden muss, um die Konsistenz zu wahren. #Privaten Schlüssel für Serverzertifikat generieren openssl genrsa -out server.key 2048 #Server-Zertifikatsanforderung generieren openssl req -new -key server.key -out server.csr #Serverzertifikat generieren openssl x509 -days 365 -req -in server.csr -extensions v3_req -CAkey root.key -CA root.crt -CAcreateserial -out server.crt -extfile openssl.cnf Hier gibt es eine Datei openssl.cnf, die Aufmerksamkeit erfordert. Sie enthält einige Informationen zum Serverzertifikat, das ausgestellt werden muss. Der Inhalt ist wie folgt [Anforderung] Distinguished_Name = erforderlicher Distinguished_Name req_extensions = v3_req [erforderlicher_Name] Ländername = CN Ländername_Standard = CN StaatOderProvinzName = Guizhou stateOrProvinceName_default = Guizhou Ortsname = Guizhou localityName_default = Guizhou organizationalUnitName = (Wenn auf die Webseite per IP zugegriffen wird, schreiben Sie die IP-Adresse; wenn sie per Domänennamen zugegriffen wird, schreiben Sie den Domänennamen) organizationalUnitName_default = (Wenn der Zugriff auf die Webseite per IP erfolgt, schreiben Sie die IP; wenn der Zugriff per Domänenname erfolgt, schreiben Sie den Domänennamen) commonName = (Wenn auf die Webseite per IP zugegriffen wird, schreiben Sie die IP-Adresse; wenn es ein Domänenname ist, schreiben Sie den Domänennamen) commonName_max = 64 [ v3_anforderung ] # Erweiterungen zum Hinzufügen einer Zertifikatsanforderung Grundeinschränkungen = CA:FALSE keyUsage = Nichtabstreitbarkeit, digitale Signatur, Schlüsselverschlüsselung 3.2 Nginx-KonfigurationÖffnen Sie die Kommentare des HTTPS-Serverabschnitts in der Nginx-Konfiguration und ändern Sie die Felder wie Servername, SSL-Zertifikat, SSL-Zertifikatsschlüssel und Root im Speicherort. ... # HTTPS-Server # Server { hören Sie 443 SSL; Servername xxx.com (Website-Zugriffsadresse); SSL aktiviert; ssl_certificate xxx.crt(Serverzertifikat); ssl_certificate_key xxx.key (privater Schlüssel des Serverzertifikats); ssl_session_cache geteilt:SSL:1m; SSL-Sitzungszeitüberschreitung 5 Min. ssl_ciphers HOCH:!aNULL:!MD5; ssl_prefer_server_ciphers ein; Standort / { Root xxx (Front-End-Codeverzeichnis); Index Index.html Index.htm; } } ... Starten Sie nginx, um externe Dienste bereitzustellen. 3.3 BrowserzugriffBisher haben wir den https-Zugriff serverseitig konfiguriert, beim Zugriff durch den Browser tritt jedoch ein Zertifikatsfehler auf, da der Browser unser Zertifikat noch nicht erkennt und nicht sicher ist, ob es sicher ist. Genauso wie wir alle kein Problem damit haben, unsere Identität mit einem vom Ministerium für öffentliche Sicherheit ausgestellten Personalausweis nachzuweisen, glauben andere Ihnen möglicherweise nicht, wenn Sie Ihre Identität mit einem von Ihnen selbst ausgestellten Personalausweis nachweisen, weil niemand die Identität der ausstellenden Behörde kennt. Daher müssen wir die ausstellende Stelle des Serverzertifikats, also das oben generierte Stammzertifikat, zur Vertrauensliste des Browsers hinzufügen. Die konkrete Vorgehensweise lautet: Wenn es sich um ein Windows-System handelt, können Sie direkt auf die Stammzertifikatdatei doppelklicken, auf Installieren klicken und sie bei der vertrauenswürdigen Stammzertifizierungsstelle installieren. Zu diesem Zeitpunkt können Sie problemlos darauf zugreifen. Oben finden Sie Einzelheiten dazu, wie nginx eine über http aufgerufene Website in einen über https aufgerufenen ändert. Weitere Informationen zum Ändern des nginx-http-Zugriffs in einen https-Zugriff finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: So implementieren Sie die Stapellöschung großer Datenmengen in großen MySQL-Tabellen
>>: vue3+ts+EsLint+Prettier Standardcode-Implementierung
1. Ändern Sie den Host-Feldwert eines Datensatzes...
Wie unten dargestellt: #!/usr/bin/env python3.5 p...
In diesem Artikel wird der spezifische Code von j...
Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...
1. Nachfrage Ein Bild bewegt sich in einer Endlos...
Trigger-Einführung Ein Trigger ist eine spezielle...
Das Erdbeben in Wenchuan am 12. Mai 2008 in Sichu...
COALESCE ist eine Funktion, die sich nacheinander...
【Frage】 Wir haben einen HP-Server. Wenn die SSD e...
Inhaltsverzeichnis 1. Ref und reaktiv 1. reaktiv ...
Vorwort In der Vergangenheit habe ich die Python-...
BFC-Konzept: Der Blockformatierungskontext ist ei...
Inhaltsverzeichnis Erster Schritt: Der zweite Sch...
Vue-unendliches Scrollen Installieren npm install...
Schließung Dienst Nginx stoppen systemctl stoppt ...