Tags: Windows 7, Sicherheit, Windows Server 2008, Zertifikate
Es 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, Stammzertifizierungsstelle 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 Stammzertifizierungsstelle, und installiert es in den Speicher der vertrauenswürdigen Stammzertifizierungsstellen. 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.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) |
Vorsicht: 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 |
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
Weitere Links