Ein SSL-Zertifikat von einer der großen Zertifizierungsstellen (CAs) zu erhalten, kann $100 und mehr kosten. Fügen Sie der Mischung Nachrichten hinzu, die darauf hindeuten, dass nicht allen etablierten CAs zu 100 % vertraut werden kann, und Sie könnten sich entscheiden, die Unsicherheit zu umgehen und die Kosten zu senken, indem Sie Ihre eigene Zertifizierungsstelle sind.
Schritte
Teil 1 von 4: Erstellen Ihres CA-Zertifikats
Schritt 1. Generieren Sie den privaten Schlüssel Ihrer Zertifizierungsstelle, indem Sie den folgenden Befehl ausführen
-
openssl genrsa -des3 -out server. CA.key 2048
-
Die Optionen erklärt
- openssl - der Name der Software
- genrsa - erstellt einen neuen privaten Schlüssel
- -des3 - Schlüssel mit der DES-Verschlüsselung verschlüsseln
- -out server. CA.key - der Name Ihres neuen Schlüssels
- 2048 - die Länge des privaten Schlüssels in Bits (Bitte beachten Sie die Warnungen)
- Bewahren Sie dieses Zertifikat und das Passwort an einem sicheren Ort auf.
Schritt 2. Erstellen Sie eine Zertifikatsignierungsanforderung
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
Die Optionen erklärt:
- req - Erstellt eine Signaturanforderung
- -verbose - zeigt Ihnen Details zur Anfrage an, während sie erstellt wird (optional)
- -new - erstellt eine neue Anfrage
- -key server. CA.key - Der private Schlüssel, den Sie gerade oben erstellt haben.
- -out server. CA.csr - Der Dateiname der Signaturanforderung, die Sie erstellen
- sha256 - Der Verschlüsselungsalgorithmus zum Signieren von Anfragen (Wenn Sie nicht wissen, was dies ist, ändern Sie dies nicht. Sie sollten dies nur ändern, wenn Sie wissen, was Sie tun)
Schritt 3. Füllen Sie die Informationen so weit wie möglich aus
-
Ländername (2-Buchstaben-Code) [AU]:
uns
-
Name des Bundesstaates oder der Provinz (vollständiger Name) [Some-State]:
CA
-
Ortsname (z. B. Stadt) :
Silicon Valley
-
Name der Organisation (z. B. Firma) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Name der Organisationseinheit (z. B. Abschnitt) :
-
Allgemeiner Name (z. B. Server-FQDN oder IHR Name) :
-
E-Mail-Addresse :
Schritt 4. Selbstsignieren Sie Ihr Zertifikat:
-
openssl ca -extensions v3_ca -out server. CA-signed.crt -keyfile server. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles server. CA.csr
-
Die Optionen erklärt:
- ca - Lädt das Certificate Authority-Modul
- -extension v3_ca - Lädt die v3_ca-Erweiterung, ein Muss für die Verwendung in modernen Browsern
- -out server. CA-signed.crt - Der Name Ihres neuen signierten Schlüssels
- -keyfile server. CA.key – Der private Schlüssel, den Sie in Schritt 1 erstellt haben
- -verbose - zeigt Ihnen Details zur Anfrage an, während sie erstellt wird (optional)
- -selfsign - teilt openssl mit, dass Sie den gleichen Schlüssel zum Signieren der Anfrage verwenden
- -md sha256 – Der für die Nachricht zu verwendende Verschlüsselungsalgorithmus. (Wenn Sie nicht wissen, was das ist, ändern Sie dies nicht. Sie sollten dies nur ändern, wenn Sie wissen, was Sie tun)
- -enddate 330630235959Z - Das Enddatum des Zertifikats. Die Notation ist YYMMDDHHMMSSZ, wobei Z in GMT steht, manchmal auch als "Zulu"-Zeit bekannt.
- -infiles server. CA.csr – die Signaturanforderungsdatei, die Sie im obigen Schritt erstellt haben.
Schritt 5. Überprüfen Sie Ihr CA-Zertifikat
- openssl x509 -noout -text -in server. CA.crt
-
Die Optionen erklärt:
- x509 – Lädt das x509-Modul, um signierte Zertifikate zu prüfen.
- -noout - Den verschlüsselten Text nicht ausgeben
- -text - Ausgabe der Informationen auf dem Bildschirm
- -in server. CA.crt - Laden Sie das signierte Zertifikat
- Die Datei server. CA.crt kann an jeden verteilt werden, der Ihre Website verwendet oder Zertifikate verwendet, die Sie signieren möchten.
Teil 2 von 4: SSL-Zertifikate für einen Dienst wie Apache erstellen
Schritt 1. Erstellen Sie einen privaten Schlüssel
-
openssl genrsa -des3 -out server.apache.key 2048
-
Die Optionen erklärt:
- openssl - der Name der Software
- genrsa - erstellt einen neuen privaten Schlüssel
- -des3 - Schlüssel mit der DES-Verschlüsselung verschlüsseln
- -out server.apache.key - der Name Ihres neuen Schlüssels
- 2048 - die Länge des privaten Schlüssels in Bits (Bitte beachten Sie die Warnungen)
- Bewahren Sie dieses Zertifikat und das Passwort an einem sicheren Ort auf.
Schritt 2. Erstellen Sie eine Zertifikatsignierungsanforderung
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
Die Optionen erklärt:
- req - Erstellt eine Signaturanforderung
- -verbose - zeigt Ihnen Details zur Anfrage an, während sie erstellt wird (optional)
- -new - erstellt eine neue Anfrage
- -key server.apache.key – Der private Schlüssel, den Sie gerade oben erstellt haben.
- -out server.apache.csr - Der Dateiname der Signaturanforderung, die Sie erstellen
- sha256 - Der Verschlüsselungsalgorithmus zum Signieren von Anfragen (Wenn Sie nicht wissen, was dies ist, ändern Sie dies nicht. Sie sollten dies nur ändern, wenn Sie wissen, was Sie tun)
Schritt 3. Verwenden Sie Ihr CA-Zertifikat, um den neuen Schlüssel zu signieren
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
Die Optionen erklärt:
- ca - Lädt das Certificate Authority-Modul
- -out server.apache.pem - Der Dateiname des signierten Zertifikats
- -keyfile server. CA.key – Der Dateiname des CA-Zertifikats, das die Anfrage signiert
- -infiles server.apache.csr – Der Dateiname der Certificate Signing Request
Schritt 4. Füllen Sie die Informationen so weit wie möglich aus:
-
Ländername (2-Buchstaben-Code) [AU]:
uns
-
Name des Bundesstaates oder der Provinz (vollständiger Name) [Some-State]:
CA
-
Ortsname (z. B. Stadt) :
Silicon Valley
-
Name der Organisation (z. B. Firma) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Name der Organisationseinheit (z. B. Abschnitt) :
-
Allgemeiner Name (z. B. Server-FQDN oder IHR Name) :
-
E-Mail-Addresse :
Schritt 5. Speichern Sie eine Kopie Ihres privaten Schlüssels an einem anderen Ort
Erstellen Sie einen privaten Schlüssel ohne Passwort, um zu verhindern, dass Apache Sie zur Eingabe eines Passworts auffordert:
-
openssl rsa -in server.apache.key -out server.apache.unsecured.key
-
Die Optionen erklärt:
- rsa - Führt das RSA-Verschlüsselungsprogramm aus
- -in server.apache.key – Der Schlüsselname, den Sie konvertieren möchten.
- -out server.apache.unsecured.key - Der Dateiname des neuen ungesicherten Schlüssels
Schritt 6. Verwenden Sie die resultierende Datei server.apache.pem zusammen mit dem privaten Schlüssel, den Sie in Schritt 1 generiert haben, um Ihre Datei apache2.conf zu konfigurieren
Teil 3 von 4: Erstellen eines Benutzerzertifikats für die Authentifizierung
Schritt 1. Befolgen Sie alle Schritte unter _Erstellen von SSL-Zertifikaten für Apache_
Schritt 2. Konvertieren Sie Ihr signiertes Zertifikat in ein PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Teil 4 von 4: Erstellen von S/MIME-E-Mail-Zertifikaten
Schritt 1. Erstellen Sie einen privaten Schlüssel
openssl genrsa -des3 -out private_email.key 2048
Schritt 2. Erstellen Sie eine Zertifikatsignierungsanforderung
openssl req -new -key private_email.key -out private_email.csr
Schritt 3. Verwenden Sie Ihr CA-Zertifikat, um den neuen Schlüssel zu signieren
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Schritt 4. Konvertieren Sie das Zertifikat in PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Schritt 5. Erstellen Sie ein Public-Key-Zertifikat zur Verteilung
openssl pkcs12 -export -out public_cert.p12 -in private_email.pem -clcerts -nokeys -name "WikiHow's Public Key"
Tipps
Sie können den Inhalt von PEM-Schlüsseln variieren, indem Sie den folgenden Befehl ausführen: openssl x509 -noout -text -in certificate.pem
Warnungen
- 1024-Bit-Schlüssel gelten als veraltet. 2048-Bit-Schlüssel gelten bis 2030 für Benutzerzertifikate als sicher, für Root-Zertifikate jedoch als unzureichend. Berücksichtigen Sie diese Schwachstellen beim Erstellen Ihrer Zertifikate.
- Standardmäßig zeigen die meisten modernen Browser die Warnung "Nicht vertrauenswürdiges Zertifikat" an, wenn jemand Ihre Website besucht. Über den Wortlaut dieser Warnungen wurde viel diskutiert, da nicht technisch versierte Benutzer überrascht werden können. Es ist oft am besten, eine größere Autorität zu verwenden, damit Benutzer die Warnungen nicht erhalten.
-
-