Kostenlose Zertifikate mit makecert.exe erstellen

    makecert erstellt ein Root-ZertifikatEs gibt Fälle, bei denen sich der Arbeits-PC und sein Benutzerkonto nicht innerhalb einer PKI befinden, man aber dennoch gültige Zertifikate einer anerkannten Zertifizierungsstelle benötigt. Beispiele dafür sind etwa freiberufliche Entwickler, die zum Zwecke der Codesignatur oder des Testbetriebs von Web-Servern weder eine Domäne aufsetzen noch Zertifikate teuer erwerben wollen.

    Da zu diesen Testzwecken alle Beteiligten – Aussteller, Stamm­zerti­fi­zierungs­stelle und Benutzer der Zertifikate – ein- und dieselbe oder zumindest nur sehr wenige Personen sind, genügt es hier, selbstsignierte Zertifikate zu verwenden.

    Das Prinzip: Zuerst erstellt man ein Zertifikat für eine Stamm­zerti­fizierungs­stelle, und installiert es in den Speicher der vertrauenswürdigen Stamm­zerti­fizierungs­stellen. Diese dient auf diesem PC fortan als Bestätigung für alle weiteren ausgestellten Zertifikate. Dazu verwendet man das Tool makecert.exe.

    makecert.exe besorgen – per Windows-SDK

    makecert erhält man über die Installation des Windows-SDKmakecert.exe kann zwar ohne spezielle Abhängigkeiten als Stand-Alone-Tool verwendet werden, jedoch ist es als solches nicht zu bekommen, zumindest nicht offiziell. Man installiert etwa es als Teil des Windows-SDK, wobei es für diesen speziellen Fall ausreicht, nur die Tools aus dem Abschnitt Native Code Development zu installieren. makecert.exe findet man anschließend unter %ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin, die entsprechenden 64-Bit-Versionen unter %ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\x64.

    makecert.exe führt man innerhalb einer Eingabeaufforderung aus. Sie muss über Administratorrechte verfügen. Erstellt man nur die Zertifikatsdatei und übernimmt sie später manuell in den Speicher, genügt eine Eingabeaufforderung mit normalen Rechten.

    Konsole für Zertifikate erstellen

    Auch wenn die Arbeit auf der Kommandozeile für die Erstellung von Zertifikaten unvermeidbar ist – für eine übersichtliche Verwaltung wird man eine GUI bevorzugen. Windows besitzt keine Konsole für die Zertifikate, man kann sie sich jedoch schnell selbst zusammenstallen: Dazu startet man über Start → Ausführen → mmc.exe eine leere Konsole und fügt per ‹Strg›-‹M› zweimal das Snap-In für Zertifikate hinzu – einmal für den lokalen Computer, einmal für den aktuellen Benutzer.

    Root-Zertifikat erstellen

    Eine Kurzbefehlsreferenz liefert makecert.exe über den Parameter -?, mit -! erhält man eine Übersicht der erweiterten Befehlsoptionen. Für die Stammzertifizierungsstelle verwendet man folgende Optionen:

    Parameter Wirkung
    makecert Programmaufruf
    -pe Privater Schlüssel soll exportierbar sein
    -n "CN=‹Name der Root-CA›" Name der Root-CA
    -ss root Zertifikatsspeicher
    -sr LocalMachine Zertifikatsort (hier lokaler Computer)
    -a sha1 Signatur-Algorithmus
    -sky signature Verwendungszweck
    -r selbstsigniert
    "‹Host› Test And Dev Root Authority.cer" Ausgabe-Dateiname (Beispiel)

    Ein Zertifikat für den Schlüsselaustausch wird erstelltVorsicht: Die Zertifikatsdatei kann sowohl zum Erstellen als auch zum Beglaubigen von Zertifikaten verwendet werden, da sie den privaten Schlüssel enthält. Sie sollte nicht an Mitarbeiter einer Arbeitsgruppe weitergegeben werden, es sei denn, diese sollen diese Rechte innehaben. Geht es hingegen nur darum, die im Folgenden mittels dieses Root-Zertifikates erstellten untergeordneten Zertifikate auf anderen Arbeitsstationen automatisch zu vertrauen, muss man das Root-Zertifikat über die Konsole für Zertifikate wieder aus dem Zertifikatsspeicher exportieren, allerdings ohne den privaten Schlüsseln. Diese Datei importiert man dann auf den untergeordneten Arbeitsstationen.

    Untergeordnetes Zertifikat erstellen

    Auf der Maschine, auf der man das Root-Zertifikat erstellt hat – oder aber auf einer, die es inklusive des privaten Schlüssels importiert hat – , kann man nun Zertifikate für bestimmte Zwecke erstellen. Der Befehlsaufruf ist folgender:

    Parameter Wirkung
    makecert Programmaufruf
    -pe Privater Schlüssel soll exportierbar sein
    -n "CN=‹Name›" DNS-Name der Zielmaschine, in einer Nicht-Domänenumgebung genügt der NetBIOS-Name ohne FQDN
    -ss my Zertifikatsspeicher
    -sr LocalMachine Zertifikatsort (hier lokaler Computer)
    -a sha1 Signatur-Algorithmus
    -sky exchange Zweck des Zertifikats (hier: Schlüsselaustausch)
    -eku ‹OID› Durch Kommata getrennte Liste von OIDs
    -in "‹CN der Root-CA" Name des Zertifikats der Ausgabestelle
    -is root Zertifikatsspeicher des beglaubigenden Zertifikats
    -ir LocalMachine Zertifikatsort des beglaubigenden Zertifikats (hier lokaler Computer)
    -sp "Microsoft RSA SChannel Cryptographic Provider" Crypto-API-Provider
    -sy 12 Crypto-API-Typ
    ‹Dateiname›.cer Ausgabe-Dateiname

    Wofür das Zertifikat genau verwendet werden kann, wird durch die aufgezählten Zwecke seiner OIDs bestimmt. Diese sind im Einzelnen

    OID Zweck
    1.3.6.1.4.1.311.10.3.4 EFS
    1.3.6.1.5.5.7.3.4 Sichere E-Mail
    1.3.6.1.4.1.311.20.2.2 Smartcard-Logon
    1.3.6.1.5.5.7.3.2 Client-Authentifizierung
    1.3.6.1.5.5.7.3.1 Server-Authentifizierung
    1.3.6.1.5.5.8.2.2 IPsec IKE intermediate

    Keine Kommentare