So erstellen Sie ein selbstsigniertes SSL-Zertifikat

SSL-Zertifikate werden verwendet, um die Authentifizierung und Verschlüsselung im Internet zu erleichtern. Normalerweise werden diese Zertifikate von vertrauenswürdigen Drittanbieter-Zertifizierungsstellen ausgestellt, wie z Let’s Encrypt. Ein selbstsigniertes Zertifikat ist eines, das erhalten wird, ohne eine Drittanbieter-Zertifizierungsstelle zu durchlaufen.

TLS/SSL ist eine Kombination aus einem öffentlichen Zertifikat und einem privaten Schlüssel. Der private Schlüssel wird sicher auf dem Server oder dem Load Balancer gespeichert, während das Zertifikat öffentlich zugänglich ist.

In diesem Tutorial erklären wir, wie man Erstellen Sie ein selbstsigniertes SSL-Zertifikat mit der OpenSSL Werkzeug.

Voraussetzungen

Eine Linux-Maschine und ein Benutzer mit sudo Privilegien.

OpenSSL installieren

OpenSSL ist standardmäßig auf allen wichtigen Linux-Distributionen verfügbar. Führen Sie den folgenden Befehl aus, um zu bestätigen, ob OpenSSL bereits auf Ihrem Linux-Computer installiert ist.

$ openssl-Version

Überprüfen Sie, ob OpenSSL installiert ist

Wenn keine Ausgabe mit Details zur OpenSSL-Version angezeigt wird, führen Sie den nächsten Befehl aus, um OpenSSL zu installieren.

Auf Ubuntu- und Debian-basierten Distributionen:

$ sudo apt install openssl

Auf Red Hat-basierten Distributionen:

$ sudo dnf install openssl $ sudo yum install openssl

Der öffnetsl Befehlssyntax ist:

openssl command options arguments 

Erstellen Sie ein selbstsigniertes SSL-Zertifikat mit OpenSSL

Nachdem Sie bestätigt haben, dass das OpenSSL-Tool auf Ihrem Linux-Computer installiert ist, können Sie Ihr selbstsigniertes Zertifikat erstellen.

CSR-Informationen sind erforderlich, um einen privaten Schlüssel zu generieren. Da wir ein selbstsigniertes Zertifikat generieren, ist es nicht wirklich erforderlich, eine CSR-Datei auszugeben, da dies nur erforderlich ist, wenn Sie CSR-Informationen an eine Drittanbieter-Zertifizierungsstelle senden.

Geben Sie Folgendes ein, um ein selbstsigniertes SSL-Zertifikat zu erstellen:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout my_key.key -out my_cert.crt

Dadurch wird ein selbstsigniertes Zertifikat erstellt, das 365 Tage gültig ist. Das Zertifikat und die Schlüsseldatei werden im aktuellen Verzeichnis erstellt, sofern nicht explizit ein anderes Verzeichnis angegeben wird.

Hier ist, was jede Option bedeutet:

  • req – Stellen Sie eine Zertifikatsignierungsanfrage
  • -newkey rsa:4096 – Dadurch wird ein 4096 Bit langer RSA-Schlüssel erstellt. Wenn nicht angegeben, wird standardmäßig ein 2048 Bit langer Schlüssel erstellt
  • -keyout – Dateiname des privaten Schlüssels, in dem der Schlüssel gespeichert wird
  • -aus – Gibt den Dateinamen zum Speichern des neuen Zertifikats an
  • Knoten – Überspringen Sie den Schritt zum Erstellen des Zertifikats mit einer Passphrase
  • -x509 – Erstellen Sie ein Zertifikat im X.509-Format
  • -Tage – Die Anzahl der Tage, an denen das Zertifikat gültig ist

CSR-Felder:

C= – Ländername. (Zwei-Buchstaben-Code).
ST= – Name des Bundesstaates oder der Provinz.
L= – Ortsname.
O= – Der vollständige Name Ihrer Organisation.
OU= – Name der Organisationseinheit.
CN= – Der vollständig qualifizierte Domänenname.

Erstellen Sie ein selbstsigniertes Zertifikat mit einem vorhandenen privaten Schlüssel und CSR

In einigen Situationen, in denen Sie über einen vorhandenen privaten Schlüssel und CSR verfügen, reichen die folgenden Schritte aus.

Private OpenSSL-Schlüssel erstellen

Führen Sie zuerst den folgenden Befehl aus, um Ihren privaten Schlüssel zu erstellen und zu speichern. Dieser private Schlüssel wird benötigt, um Ihr SSL-Zertifikat zu signieren. Du kannst ändern mein Schlüssel im Befehl unten auf Ihren eigenen Wert.

$ sudo openssl genrsa -out my_key.key

Hier ist, was die Optionen bedeuten.

  • genrsa Generieren Sie einen privaten RSA-Schlüssel
  • -aus Ausgabedatei

Sofern Sie keinen anderen Speicherort angegeben haben, wird Ihr privater Schlüssel im aktuellen Arbeitsverzeichnis gespeichert.

Erstellen Sie eine Zertifikatsignieranforderung

Der nächste Schritt besteht darin, eine Certificate Signing Request (CSR) zu erstellen. Die CSR wird normalerweise zum Signieren an eine Drittanbieter-Zertifizierungsstelle gesendet. Aber in diesem Fall werden Sie es selbst unterschreiben.

Beim Erstellen eines CSR werden Sie aufgefordert, einige Informationen anzugeben. Einige Felder können durch Drücken der Eingabetaste leer gelassen werden.

Führen Sie nun den folgenden Befehl aus, um mit der Erstellung Ihres CSR zu beginnen.

$ sudo openssl req -new -key my_key.key -out my_csr.csr

Hier ist, was jede Option bezeichnet.

  • req Stellen Sie eine Zertifikatsignieranforderung
  • -Neu Neue Anfrage
  • -Schlüssel Der Pfad, in dem Ihre private Schlüsseldatei gespeichert ist
  • -aus Ausgabedatei

Das Bild unten zeigt, wie der CSR-Erstellungsprozess aussieht.

Erstellen Sie eine ZertifikatsignieranforderungErstellen Sie eine Zertifikatsignieranforderung

Unterschreiben Sie Ihr Zertifikat selbst

Wenn Sie den folgenden Befehl ausführen, wird ein selbstsigniertes Zertifikat erstellt, das 365 Tage gültig ist.

$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt

Unten ist, was die Optionen bedeuten.

  • x509 Internationaler Standard zum Erstellen und Verifizieren von Public-Key-Zertifikaten
  • -req Stellen Sie eine Zertifikatsanfrage
  • -Tage Wie viele Tage soll das Zertifikat gültig sein
  • -in Der Pfad, in dem Ihre csr-Datei gespeichert ist
  • –signkey Der Pfad, in dem Ihr privater Schlüssel gespeichert ist
  • -aus Ausgabedatei für Ihr selbstsigniertes Zertifikat

Überprüfen Sie das Zertifikat

Sie können die Zertifikatsdetails im Textformat mit dem folgenden Befehl überprüfen.

$ openssl x509 -text -noout -in my_cert.crt

Details zum SSL-Zertifikat anzeigenDetails zum SSL-Zertifikat anzeigen

Fazit

In diesem Tutorial haben wir beschrieben, wie Sie ein selbstsigniertes SSL-Zertifikat erstellen, indem Sie das öffnetsl Werkzeug. Da gängige Browser selbstsignierten Zertifikaten nicht vertrauen, wird empfohlen, diese nur intern oder zu Testzwecken zu verwenden.