PKI – Zertifikate via Windows Batchskript importieren

Das Problem

Manchmal müssen auf Windows-Endgeräten schnell und einfach (selbst-signierte) Zertifikate verteilt werden. Eine Herausforderung insofern sich die Endanwender nicht mit den Besonderheiten von Zertifikaten und Windows auskennen. Zwar kann man dies Umgehen, indem man die Verteilung der Zertifikate mittels Gruppenrichtlinien (GPO) vornimmt. Allerdings steht dieses Mittel nicht immer zu Verfügung bzw. ist manchmal schwer praktikabel. Z.B. wenn keine bzw. nur eine temporäre eine Verbindung zur Windows-Domäne besteht. Ich habe daher nach einem Weg gesucht, die die Zertifikate einfach verschicken und mittels Skript unter Windows importieren zu können.

Lösung

Ich habe mir dazu ein kleines Batch Skript geschrieben. Dieses kann aus einer Verzeichnisstruktur Zertifikate für „vertrauenswürdige Herausgeber“ (Trusted Publishers), „Zwischenzertifizierungsstellen“ (Sub CAs) und „Vertrauenswürdige Stammzertifizierungsstellen“ (Root CAs) für den kompletten lokalen Rechner oder für den jeweiligen User importieren, um eine PKI abzubilden. Der Endanwender muss dann nur noch das Skript entpacken und per Doppelklick ausführen. Die Zertifikate werden anschließend entweder für den lokalen Computer oder für den lokalen Benutzer (Variante des Skripts) im certstore installiert. Diese Lösung möchte ich Euch gerne zur Verfügung stellen.

Das Batch-Skript: (Download weiter unten)

:: PKI Script
:: target   Windows Clients and Servers starting from Windows XP and Server 2003 
:: src      Lars Mautsch. www.software-plattformen.de
:: context  admin

::Disclaimer
: The batch script is provided as is. Use it as your own risk. The author cannot be made liable for any damage/harm this script or miss-use of certificates/PKIs might cause.

@echo off
cd /d %~dp0

: root certificates
certutil -f  -addstore root root\yourcacertname.cer

: subca certificates
certutil -f  -addstore subca subca\yoursubcacertname.cer

: trusted publisher certificates
certutil -f  -addstore trustedpublisher trustedpublisher\yourcertname.cer

: wait for user to view result
pause

Download des ZIP-Archivs (inkl. Varianten)

Erläuterungen zum Skript und Anpassung für den eigenen Anwendungsfall:

  • ZIP-Archiv mittels 7-zip o.ä. auf den lokalen Rechner entpacken, bspw. in C:\wartung
  • Das eigentliche Skript befindet sich im root/Basisordner und trägt den Namen „add_certs_system.bat“ . Die Variante für den einzelnen User: add_certs_user.bat
  • Die Zertifikate, die Ihr verteilen möchtet, werden in die jeweiligen Unterordnern platziert:
    • root: Für Vertrauenswürdige Stammzertifizierungsstellen – Root CAs
    • subca: Für Zwischenzertifizierungsstellen
    • trustedpublisher: Vertrauenswürdige Herausgeber (Trusted Publisher)
  • Anschließend die Dateinamen, der zu verteilenden Zertifikate im Skript anpassen, nicht benötigte Teile einfach mit „:“ auskommentieren. Z. B. falls Ihr keine subca benötigt.
  • Zum Testen: Skript als Administrator ausführen: Rechtsklick auf das Skript – als Administrator ausführen.
  • Komplette Verzeichnisstruktur wieder packen (ZIP, …) und dann an Endanwender/Nutzer verteilen.

Viel Spaß & Erfolg damit! Wie immer erfolgt die Nutzung komplett auf eigene Gewähr. Ich schließe jegliche Haftung für entstandene Schäden, bspw. durch falsch verwendete, oder selbst-signierte Zertifikate, Tippfehler etc. komplett aus. Über Feedback und insb. Verbesserungsvorschläge freue ich mich sehr. Lasst diese doch gerne wieder der Allgemeinheit zukommen!