Tags: Windows 7, Sicherheit, Netzwerk, Zertifikate
Die Arbeit mit einer gut gestalteten GUI in Kommandozeilenwerkzeugen abzubilden ist nicht einfach, das Ergebnis wird oft trotzdem als unkomfortabel empfunden. Anders ist es bei immer wiederkehrenden Aufgaben, wie etwa der Erstellung und Verteilung von Computer-Zertifikaten innerhalb einer Arbeitsgruppe. Hier muss man ersteres ohnehin per Kommandozeile erledigen – da spart es Zeit und Nerven, auch die Verwaltung der Zertifikate per certutil.exe zu regeln.
Per certutil.exe Zertifikate exportieren, importieren, löschen
Mit certutil.exe kann man prinzipiell alles machen, was auch eine Zertifikate-Konsole
bietet. Entsprechend komplex ist das Tool – Microsoft hat dessen Hilfefunktion so, gestaltet, dass man außer der allgemeinen Kurzhilfe per Parameter -? diesen auch noch einmal nach jedem Parameter einsetzen kann, um wiederum dafür die Hilfe zu erhalten. Die allgemeine Befehlsreferenz hat Microsoft hier hinterlegt.
In dem genannten Beispiel geht es darum, Zertifikate zunächst zu erstellen und in den Zertifikatspeicher zu laden. Danach exportiert man sie inklusive ihres privaten Schlüssels als PFX mit Passwort und löscht sie sofort wieder aus dem Zertifikatspeicher. Diese Routine ist spätestens nach dem dritten Mal per certutil.exe schneller erledigt als in der GUI. Die nötigen Aufrufe sind folgende
certutil.exe -privatekey -p ‹Passwort› -exportpfx "‹CN-Name›" ‹Datei›.pfx
certutil.exe -delstore My "‹CN-Name›"
der erste exportiert das Zertifikat, der zweite löscht es aus dem Zertifikatspeicher.
Auf der Zielmaschine importiert man die PFX-Datei dann mit
certutil.exe -p ‹Passwort› -importpfx ‹Datei›.pfx
Den Parameter -p kann man auf der Kommandozeile auch jeweils weglassen, certutil.exe erfragt das Passwort dann interaktiv.
Batch-Datei für makecert.exe und certutil.exe
Um beide Arbeitsschritte – Erstellen und Exportieren des Zertifikates für eine andere Maschine – zu automatisieren, ruft man am besten beide Befehle in einer Batch-Datei auf. Diese kann etwa folgenden Aufbau haben:
@echo off IF [%1]==[] goto missing1
IF [%2]==[] goto missing2
SETLOCAL
set PATH=%PATH%;"%ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\x64"
makecert.exe -pe -n "CN=%1" -a sha1 -sky exchange
  -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -is root -ir LocalMachine
-in "kroschel.com Test And Dev Root Authority" -ss My -sr LocalMachine
-sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
certutil.exe -privatekey -p %2 -exportpfx "%1" %1.pfx
certutil.exe -delstore My "%1"
ENDLOCAL
goto end
:missing1
echo missing argument: please enter machine name
goto end
:missing2
echo missing argument: please enter password for PFX file
goto end
:end
Sie erfordert ein installiertes Windows-SDK. Als ersten Parameter erwartet sie den Namen des Computers, für den das Zertifikat erstellt werden soll, als zweiten das Export-Passwort. Um sie zu verwenden, sind folgende Anpassungen notwendig:
- Auf einem 32-Bit-System muss in Zeile 5 in der PATH-Erweiterung der Teil \x64 weggelassen werden,
- beim Aufruf von makecert.exe in der nächsten Zeile muss man hinter dem Parameter -in seine eigene Root-CA statt der hier beispielhaft angegebenen kroschel.com Test And Dev Root Authority
einsetzen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links