CAcert Client-Zertifikat mit Kommandozeilen-Tools erstellen (Windows 10 und älter)

Von Gero Treuner

Überblick

Windows 10 bietet Kommandozeilenprogramme für alle notwendigen Schritte, um einen öffentlichen/privaten Schlüssel zu erstellen, ein Zertifikat von CAcert zu erhalten und es für die Verwendung in anderen Anwendungen - wobei Webbrowser wie Firefox Zertifikate separat verwalten - oder auf einen anderen Rechnern zu exportieren.

Dies sind die Schritte:

  1. Erstellen Sie einen öffentlichen/privaten Schlüssel und einen Certificate Signing Request (CSR) mit einer gemeinsamen Vorlage.
  2. Senden Sie die CSR an die CAcert CA, erhalten Sie das Client-Zertifikat und speichern Sie es (im PEM-Format) in einer CRT-Datei.
  3. Importieren Sie das Zertifikat in die "Persönlichen" Zertifikate des aktuellen Benutzers (Sie). Dann wird es mit dem privaten Schlüssel verknüpft. Sie können es auf einem oder mehreren Computern in ihren Systemen und Client-Programmen wie Webbrowsern (Internet Explorer, Edge, Firefox, Chrome,...) und E-Mail-Clients (Outlook, Thunderbird, The Bat,...) verwenden. Wichtig ist hier der Zweck der Client-Zertifikate - ihre Verwendung in Client-Programmen. Der Computer selbst kann ein PC, ein Laptop, eine Workstation, ein Server, ein Tablett oder ein "intelligentes" Mobiltelefon sein.
  4. Wenn Sie Ihr Client-Zertifikat auf einem anderen Computer verwenden möchten, müssen Sie das Zertifikat mit dem entsprechenden privaten Schlüssel in eine Datei vom Typ P12 mit der Erweiterung PFX exportieren. Sie können es dann auf einen Zielcomputer und/oder ein Client-Programm importieren. Bei Windows-Betriebssystemen verwenden Sie das MMC-Zertifikatsmodul, auf Tabletts oder Mobiltelefonen reicht es häufig aus, die Datei zu öffnen.

Vorbereitung

Danach haben Sie:

  1. Einen Arbeitsordner für die Dateien, die im Verlauf der Zertifikatserstellung benötigt werden
  2. Eine Parameterdatei, die heruntergeladen und dort abgelegt wird
  3. Ein geöffnetes Befehlsfenster zur Bearbeitung

Öffnen Sie den Windows-Explorer: Halten Sie die "Win"-Taste gedrückt und geben Sie "e" ein (oder über das Menü).

Erstellen Sie einen neuen Ordner über das Kontextmenü: Klicken Sie mit der rechten Maustaste und wählen Sie "Neuer Ordner".

Laden Sie die CSR.inf herunter und speichern Sie sie in dem neuen Ordner.

Wenn Sie mit Zertifikaten vertraut sind, können Sie die Datei CSR.inf bearbeiten und die Parameter für den Schlüssel anpassen. Die mitgelieferte Datei sieht eine RSA-Verschlüsselung mit einer starken Schlüssellänge vor. "FriendlyName" wird später im Windows-Zertifikatspeicher angezeigt und kann nach Belieben angepasst werden. Vollständig ignoriert werden "Subject" und "KeyUsage" (für CAcert) - die möglichen Nutzungs- und Personendaten wählen Sie später im Webportal aus.

[NewRequest] 
Subject = "CN=dummy.createnewcsr.cacert.org"
ExportableEncrypted = true
HashAlgorithmus = sha256
SchlüsselAlgorithmus = RSA
Schlüssellänge = 4096
KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE"
AnfrageTyp = PKCS10
FriendlyName = "MyCertificateFromCAcert"

Öffnen Sie schließlich ein Befehlsfenster für den oben erstellten Ordner: Halten Sie die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste auf diesen Ordner - wählen Sie im Menü "Befehlsfenster hier öffnen".

Erstellen Sie einen öffentlichen/privaten Schlüssel und eine Zertifikatssignierungsanforderung (CSR)

Geben Sie im Befehlsfenster den folgenden Befehl ein, gefolgt von der Eingabetaste (Return):

certreq -new CSR.inf CSR_for_CAcert.req

Das war's - im Hintergrund wurde ein Schlüssel zu Ihrem persönlichen Zertifikatspeicher hinzugefügt und eine CSR-Datei (zur Übermittlung an CAcert) mit dem Namen "CSR_for_CAcert.req" erstellt.

Prüfen Sie bei einer Fehlermeldung die Pfade und ob sich die CSR.inf wirklich im aktuellen Ordner befindet (der in der sog. "Eingabeaufforderung" im Befehlsfenster angezeigt wird).

CSR einreichen und Zertifikat abrufen

Öffnen Sie die Datei "CSR_for_CAcert.req" mit Ihrer CSR in Notepad. Markieren Sie den gesamten Inhalt und kopieren Sie ihn in die Zwischenablage (Strg-A, dann Strg-C).

Melden Sie sich bei Ihrem CAcert-Konto an und wählen Sie im Menü "Client-Zertifikate" den Punkt "Neu":

Markieren Sie das Kästchen "Erweiterte Optionen anzeigen". Weitere Inhalte werden angezeigt; verwenden Sie das große Textfeld "Optional Client CSR...". Fügen Sie den Inhalt der CSR (Strg-V) in dieses Feld ein. Geben Sie in das Feld "Optionaler Kommentar" einen Kommentar ein, der Ihr neues Zertifikat nur in der Liste in Ihrem Konto ausweist.

Vergessen Sie nicht, Ihr Einverständnis mit dem CAcert Community Agreement zu erklären, indem Sie das Kästchen unten ankreuzen. Drücken Sie die Schaltfläche "Absenden".

CAcert stellt Ihr Client-Zertifikat aus. Sie können es im PEM-Format (.crt-Dateiendung) oder im DER-Format (.cer-Endung) herunterladen und in dem zuvor erstellten Ordner speichern, in dem Sie das Befehlsfenster geöffnet haben. Beachten Sie, dass das Zertifikat nicht den privaten Schlüssel enthält, da dieser auf dem Computer verbleibt, auf dem Ihre CSR erstellt wurde.

Importieren des Zertifikats in das Betriebssystem

Angenommen, Sie haben das Zertifikat im PEM-Format in eine Datei mit der Endung .crt heruntergeladen, dann müssen Sie nun das Zertifikat in das Betriebssystem (Windows 10) importieren.

Geben Sie im Befehlsfenster den folgenden Befehl ein - fügen Sie den Namen der heruntergeladenen Zertifikatsdatei ein - gefolgt von der Eingabetaste:

certreq -accept <Name-des-heruntergeladenen-Zertifikats>.crt

Exportieren oder Sichern des Client-Zertifikats

Sie können ein Zertifikat mit dem zugehörigen privaten Schlüssel in eine P12-formatierte Datei mit dem Suffix PFX exportieren. Auf diese Weise können Sie Sicherungskopien erstellen, aber auch ein Zertifikat mit dem zugehörigen privaten Schlüssel auf einen anderen Computer, ein Tablett, ein Mobiltelefon usw. übertragen, sowie auf Client-Programme, die über einen eigenen Zertifikatspeicher verfügen, wie z. B. der Webbrowser Firefox und das E-Mail-Client-Programm Thunderbird.

Öffnen Sie den Zertifikatsmanager: Halten Sie die "Win"-Taste gedrückt und geben Sie "R" ein. Geben Sie in der Befehlszeile ein, gefolgt von der Eingabetaste (Return):

certmgr.msc

Zeigen Sie das Menü an, indem Sie mit der rechten Maustaste auf das Zertifikatsobjekt klicken. Wählen Sie "Alle Aufgaben" - "Exportieren".

Es erscheint ein Export-Assistent. Auf der zweiten Seite müssen Sie eine wichtige Entscheidung treffen. Bei der Auswahl des Exports des privaten Schlüssels wählen Sie gleichzeitig das Ausgabeformat P12 (.pfx-Suffix) und den gesamten Ablauf des Exports. Drücken Sie die Schaltfläche "Weiter".

Die PKCS 12 (P12)-formatierte Datei mit dem Suffix PFX ist bereits vorausgewählt. Sie können weitere nützliche Optionen hinzufügen, wie vorgeschlagen (siehe Bild). "Include all certificates in the certification path..." ermöglicht es, auch Wurzelzertifikate der CA aus der resultierenden Datei (in diesem Fall CAcert) zu importieren.

"Export all extended properties" ist sicherheitshalber eingestellt.

Den privaten Schlüssel löschen, wenn der Export erfolgreich war" wollen Sie sicher nicht, denn Sie müssen die Möglichkeit behalten, dass das Zertifikat funktioniert, wenn Sie es von dem Computer, auf dem Sie das Zertifikat (mit der CSR) erstellt haben, auf einen anderen Computer/Handy/Tablet übertragen wollen...

Wählen Sie Ihr Passwort aus und geben Sie es zweimal ein (Gruppen und Benutzernamen gehören zum Konzept des Microsoft Active Directory [AD], verwenden Sie sie hier nicht). Fahren Sie mit der Schaltfläche "Weiter" fort.

Geben Sie den Pfad und den Dateinamen der P12-formatierten Datei mit der Endung .pfx an, in der das Zertifikat und der private Schlüssel gespeichert werden sollen. Nach Betätigung der Schaltfläche "Weiter" wird eine Zusammenfassung angezeigt. Dann (nach Drücken von "Complete") erscheint der Bestätigungsdialog. Drücken Sie OK.

Sie können das Client-Zertifikat und den privaten Schlüssel auf einem anderen Computer (z.B. Laptop) importieren, indem Sie die PFX-Datei übertragen und von dort importieren.


HowTo/ClientCertCreate3/DE (last edited 2022-03-11 20:08:18 by EtienneRuedin)