Erstellen Sie ein SSL-Zertifikat, das in nginx und IIS verwendet werden kann

Erstellen Sie ein SSL-Zertifikat, das in nginx und IIS verwendet werden kann

Wenn Sie der Meinung sind, dass das Erstellen eines Zertifikats mühsam ist, finden Sie hier das in diesem Artikel erstellte Zertifikat: https://pan.baidu.com/s/1MJ5YmuZiLBnf-DfNR_6D7A (Extraktionscode: c6tj), das Kennwort lautet: 123456

Sie können das Zertifikat herunterladen und anschließend entsprechend der Anleitung zur Nutzung von nginx und IIS im weiteren Text verwenden.

Erstellen eines SSL-Zertifikats

OK, erstellen wir zunächst ein leeres Verzeichnis und beginnen mit der Erstellung in diesem leeren Verzeichnis:

1. Privaten Schlüssel generieren

Führen Sie den folgenden Befehl aus, um einen privaten Schlüssel zu generieren:

    sudo openssl genrsa -des3 -out demo.key 1024
    # Der Befehl openssl genrsa wird verwendet, um einen privaten RSA-Schlüssel zu generieren, nicht einen öffentlichen Schlüssel, da der öffentliche Schlüssel aus dem privaten Schlüssel extrahiert wird. # -des3 gibt den Algorithmus an, der zum Verschlüsseln der privaten Schlüsseldatei verwendet wird. Sie müssen den Verschlüsselungsalgorithmus nicht angeben (es wird empfohlen, den Verschlüsselungsalgorithmus für Ihre eigenen Tests nicht anzugeben). Optional: -des|-des3|-idea
  # -out demo.key Speichert den generierten privaten Schlüssel in der angegebenen Datei. # 1024 Gibt die Länge des zu generierenden privaten Schlüssels an (in Bits). Der Standardwert ist 1024. Normalerweise ist es entweder 1024 oder 2048.

Während des Generierungsprozesses wirst du aufgefordert, ein Passwort einzugeben. Hier habe ich es getestet und direkt eingegeben: 123456

Hinweis: Der Parameter -des3 des Verschlüsselungsalgorithmus wird im oben generierten demo.key verwendet. Wenn Sie nach der Bereitstellung also einen Neustart durchführen müssen, werden Sie möglicherweise zur Bestätigung aufgefordert, ein Kennwort einzugeben, z. B. wenn Sie nginx -s reload verwenden, was beim eigenen Testen sehr problematisch ist.

Es gibt zwei Lösungen:

a. Passwort generieren und anschließend löschen

Beispielsweise wird oben eine private Schlüsseldatei mit dem Namen demo.key generiert. Sie können sie zurücksetzen, indem Sie den folgenden Befehl ausführen:

    sudo openssl rsa -in demo.key -out temp.key und sudo rm demo.key und sudo mv temp.key demo.key

b. Geben Sie beim Generieren eines privaten Schlüssels nicht den Parameter -des3 an

Beispielsweise wird der Befehl zum Generieren von demo.key oben wie folgt geändert:

    sudo openssl genrsa -out demo.key 1024

2. Generieren Sie eine Zertifikatsanforderungsdatei

Führen Sie den folgenden Befehl aus, um eine Zertifikatsanforderungsdatei zu generieren:

    sudo openssl req -new -key demo.key -out demo.csr
    # Die Hauptfunktionen des Befehls openssl req bestehen im Generieren einer Zertifikatsanforderungsdatei, im Anzeigen und Überprüfen der Zertifikatsanforderungsdatei und im Generieren eines selbstsignierten Zertifikats. # -new Beschreibung Generieren Sie eine Zertifikatsanforderungsdatei. # -key demo.key Gibt eine vorhandene Schlüsseldatei zum Generieren einer Schlüsselanforderung an, die nur mit der Option -new zum Generieren einer Zertifikatsanforderung verwendet wird.
  # -out demo.csr gibt den Namen der generierten Zertifikatsanforderung oder des selbstsignierten Zertifikats an

Nachdem der Befehl ausgeführt wurde, werden Sie aufgefordert, einige Zertifikatsinformationen einzugeben. Einzelheiten entnehmen Sie bitte der folgenden Abbildung:

3. Generieren Sie eine CRT-Zertifikatdatei

Führen Sie den folgenden Befehl aus, um die Zertifikatsdatei zu generieren:

    sudo openssl x509 -req -days 36500 -in demo.csr -signkey demo.key -out demo.crt
    # Der Befehl openssl x509 wird hauptsächlich verwendet, um Zertifikatsinformationen auszugeben, Zertifikatsanforderungsdateien zu signieren, selbstsignierte Zertifikate zu generieren, Zertifikatsformate zu konvertieren usw. # -req gibt an, dass die folgende Eingabe eine Zertifikatsanforderungsdatei ist. # -days 36500 Die Gültigkeitsdauer des Zertifikats wird in Tagen angegeben (wir sehen uns in hundert Jahren).
  # -in demo.csr gibt die Eingabedatei an# -signkey demo.key Signaturzertifikatschlüssel# -out demo.crt gibt die Ausgabedatei des Zertifikats an

Wenn die Eingabeaufforderung etwa wie folgt aussieht, war die Generierung erfolgreich:

4. Generieren Sie ein PFX-Zertifikatinstallationspaket

Führen Sie den folgenden Befehl aus, um die Installationspaketdatei zu generieren:

    sudo openssl pkcs12 -export -inkey demo.key -in demo.crt -out demo.pfx
    # Der Befehl openssl pkcs12 wird zum Generieren und Analysieren von pkcs12-Dateien verwendet. # -export gibt an, dass eine PKCS#12-Datei erstellt wird. # -inkey demo.key gibt den Speicherort der privaten Schlüsseldatei an. Wenn nicht angegeben, muss der private Schlüssel in -in Dateiname angegeben werden. # -in demo.crt gibt die Datei an, aus der der private Schlüssel und das Zertifikat gelesen werden. # -out demo.pfx gibt die Ausgabedatei pkcs12 an.

Nach der Ausführung des Befehls geben Sie das Passwort ein. Hier gebe ich dasselbe ein: 123456

An diesem Punkt ist das Zertifikat vollständig und wir erhalten 4 Dateien:

    demo.crt: CRT-Zertifikatsdatei, die bei der Konfiguration von Nginx verwendet werden kann. demo.csr: CRT-Zertifikatsanforderungsdatei, die derzeit im Grunde nutzlos ist. demo.key: privater Schlüssel, der bei der Konfiguration von Nginx verwendet werden kann. demo.pfx: Zertifikatsinstallationspaket, das bei der Bereitstellung von IIS verwendet werden kann.

Nginx-Konfiguration mit Zertifikat

Erstellen Sie eine Nginx-Konfigurationsdatei:

  Server {
        hören Sie 4430 SSL;
        hören Sie [::]:4430 ssl;

        SSL aktiviert;
        ssl_certificate /home/feng/ssl/demo.crt; #CRT-Zertifikatdatei ssl_certificate_key /home/feng/ssl/demo.key; #private Schlüsseldatei ssl_session_timeout 5m;
        SSL-Protokolle SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALLE:!ADH:!EXPORT56:RC4+RSA:+HOCH:+MITTEL:+NIEDRIG:+SSLv2:+EXP;
        ssl_prefer_server_ciphers ein;

        Wurzel /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        Servername _;

        Standort / {
                versuche_dateien $uri $uri/ =404;
        }
  }

Beachten Sie, dass ich hier zur Unterscheidung nicht den Standardport 443 verwendet habe, sondern Port 4430

Verwenden Sie dann nginx -t zur Überprüfung und nginx -s reload zum Neuladen. Verwenden Sie dann den Browser, um auf 4430 zuzugreifen. Der Zugriff ist möglich, aber es wird darauf hingewiesen, dass Risiken bestehen. Schließlich wird das Zertifikat von Ihnen selbst erstellt, wie unten gezeigt:

Klicken Sie auf „Erweitert“ => „Risiko akzeptieren“.

IIS-Konfiguration mithilfe eines Zertifikats

Für das IIS-Konfigurationszertifikat ist ein PFX-Zertifikatinstallationspaket (demo.pfx) erforderlich. Hier nehmen wir IIS7 als Beispiel:

Öffnen Sie IIS und klicken Sie auf der Startseite auf [Serverzertifikat].

Klicken Sie rechts auf [Importieren], wählen Sie die erstellte PFX-Zertifikatdatei aus und geben Sie das beim Erstellen der Datei eingegebene Kennwort ein (das beim Erstellen der PFX-Datei in Schritt 4 oben eingegebene Kennwort lautet hier 123456):

Wählen Sie dann die Website aus, zu der Sie den https-Anforderungstyp hinzufügen möchten, klicken Sie in der Operation rechts auf [Binden] und führen Sie dann die folgenden Schritte aus:

Starten Sie dann die Site neu und verwenden Sie die https-Anforderung auf dem angegebenen Port

Hinweis: Wenn auf Ihrem Computer Tools wie VMware installiert sind, wird an Port 443 möglicherweise eine Fehlermeldung angezeigt, die beispielsweise lautet: „Ein anderes Programm verwendet diese Datei und der Prozess kann nicht darauf zugreifen.“ Lösungsreferenz: https://www.jb51.net/article/109375.htm

Im Programm verwendete Zertifikate

Manchmal müssen wir im Programm auch Zertifikate verwenden. Wenn wir beispielsweise Grpc verwenden, verwenden wir standardmäßig https oder wir möchten nur https-Anfragen verwenden. Dann müssen wir möglicherweise Zertifikate im Programm verwenden, um zu funktionieren. Beispielsweise können wir selbst erstellte Zertifikate in .net core verwenden, um https-Anfrageprojekte zu generieren:

Wir erstellen ein .net Core-Webprojekt, verwenden die oben erstellte demo.pfx und ändern Program.cs:

    öffentliches Klassenprogramm
    {

        öffentliche statische void Main(string[] args)
        {
            Erstellen Sie einen HostBuilder.
        }

        öffentliche statische IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(Argumente)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.ConfigureKestrel(Optionen =>
                    {
                        Optionen.ListenAnyIP(5000, listenOptions =>
                        {
                            listenOptions.UseHttps(@"C:\inetpub\wwwroot\demo.pfx", "123456");
                        });
                    });
                    webBuilder.UseStartup<Startup>();
                });
    }

Nach dem Start können Sie per https den Zugriff anfordern

Oben finden Sie Einzelheiten zum Erstellen eines SSL-Zertifikats, das in nginx und IIS verwendet werden kann. Weitere Informationen zum Erstellen von SSL-Zertifikaten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

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
  • Beispielcode zur Implementierung der bidirektionalen Authentifizierung mit Nginx+SSL
  • Schritte zum Konfigurieren von Nginx SSL zur Implementierung des HTTPS-Zugriffs (für Anfänger geeignet)

<<:  Fragen zum Vorstellungsgespräch zum MySQL-Datenbankindex (grundlegende Programmierkenntnisse)

>>:  Tipps zum Listenaufbau für Website-Wartungsseiten

Artikel empfehlen

js implementiert ein einfaches Englisch-Chinesisch-Wörterbuch

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

Empfohlene 20 besten kostenlosen englischen Handschrift-Schriftarten

Jellyka BeesAntike Handschrift [Ank]* Jellyka Cutt...

So verhindern Sie, dass Website-Inhalte in Suchmaschinen aufgenommen werden

Normalerweise besteht das Ziel beim Erstellen ein...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.11

Die Installations- und Konfigurationsmethoden von...

Detaillierte Erläuterung der vier Transaktionsisolationsebenen in MySQL

Die Testumgebung dieses Experiments: Windows 10+c...

Implementierung der Änderung von Konfigurationsdateien im Docker-Container

1. Betreten Sie den Container docker run [Option]...

Verwenden von JS zum Implementieren eines einfachen Rechners

Verwenden Sie JS, um einen einfachen Rechner für ...

Natives JavaScript zum Erreichen von Skinning

Der spezifische Code zur Implementierung von Skin...

Ein kurzer Vortrag über Rx-responsive Programmierung

Inhaltsverzeichnis 1. Beobachtbar 2. Funktionen h...

XHTML-Tags sollten richtig verwendet werden

<br />In früheren Tutorials von 123WORDPRESS...

Vorschläge zur Optimierung der Webseiten-Kopfzeile

Logo-Optimierung: 1. Das Logobild sollte so klein...

CSS zum Erstellen eines dynamischen sekundären Menüs

Dynamisches Implementieren eines einfachen sekund...

mysql8.0.11 Winx64 Installations- und Konfigurationstutorial

Das Installationstutorial für MySQL 8.0.11 WinX64...