Installation und Einrichtung
Voraussetzungen
| Betriebssystem | Windows Server 2016 oder neuer, 64 Bit, Desktop oder Server Core. TLS 1.3 ab Server 2022, sonst TLS 1.2. |
| Domäne | Mitglied einer AD-Domäne (für „Mit Windows anmelden“; lokale Konten funktionieren auch ohne). |
| Ressourcen | 2 vCPU, 4 GB RAM, 1 GB freier Plattenplatz. |
| Software | Keine – certmon bringt die .NET-Laufzeit mit (self-contained). |
| Rechte | Installation als lokaler Administrator. |
Firewall-Matrix
| Richtung | Von → Nach | Port | Zweck | Pflicht |
|---|---|---|---|---|
| eingehend | Admin-Arbeitsplätze → certmon-Server | TCP 8443 (Parameter /PORT) | Dashboard (HTTPS) | ja – das Setup legt eine Regel für das Domänenprofil an |
| ausgehend | certmon-Server → api.polar.sh | TCP 443 | Lizenzaktivierung und -prüfung (etwa alle 30 Tage) | nein – ohne Internet: Aktivierung per Lizenzdatei |
| ausgehend | certmon-Server → Domänencontroller | Kerberos (88), LDAP (389) | nur Windows-Anmeldung und Auflösung von Gruppennamen | nur bei Windows-Anmeldung |
| ausgehend | certmon-Server → Scan-Ziele (Netzwerk-Scan) | die eingetragenen Ports (Standard 443, 8443, 4443, 9443, 10443, 5001, 8006, 636, 3269, 5986, 993, 995, 465, 3389) | TLS-Handshake zum Lesen des Zertifikats; optional ein GET / für den Seitentitel; keine Anmeldung | nur, wenn ein Netzwerk-Scan eingerichtet ist |
| ausgehend | certmon-Server → Domänencontroller | Kerberos (88), LDAP (389, signiert und versiegelt) | PKI-Überwachung: Konfigurationspartition lesen (Public Key Services) | nur bei einer PKI-Quelle |
| ausgehend | certmon-Server → Zertifizierungsstellen | RPC (TCP 135) + dynamische RPC-Ports | certutil -ping und CA-Datenbank lesen (DCOM) | nur bei einer PKI-Quelle |
| ausgehend | certmon-Server → CDP/AIA-Webserver | TCP 80/443 (die URLs aus den Zertifikaten) | Sperrlisten und CA-Zertifikate abrufen, Sperrprüfung der CA-Ketten | nur bei einer PKI-Quelle mit Netzwerkprüfung |
| ausgehend | certmon-Server → überwachte Windows-Server | TCP 5985 (WinRM, Kerberos-verschlüsselt) oder 5986 (WinRM über HTTPS) | Lesen über den JEA-Endpunkt certmon.Reader | nur bei einer Server-Quelle |
| ausgehend | certmon-Server → überwachte Windows-Server | die Ports der gebundenen Dienste (443, 3389, 5986, 636 …) | TLS-Gegenprobe der Bindungen, LDAPS der Domänencontroller | nur bei einer Server-Quelle mit TLS-Gegenprobe |
| ausgehend | certmon-Server → SMTP-Server | TCP 587 oder 25 (STARTTLS) | E-Mail-Benachrichtigungen | nur mit SMTP-Kanal |
| ausgehend | certmon-Server → login.microsoftonline.com, graph.microsoft.com | TCP 443 | E-Mail über Microsoft 365 (Graph) | nur mit Microsoft-365-Kanal |
| ausgehend | certmon-Server → Teams-Workflow, Webhook-Empfänger | TCP 443 (HTTPS) | Teams- und Webhook-Benachrichtigungen | nur mit dem jeweiligen Kanal |
| ausgehend | certmon-Server → Verzeichnisserver (DC, OpenLDAP, FreeIPA) | TCP 636 (LDAPS) oder 389 (StartTLS) | LDAP(S)-Anmeldung | nur wenn aktiviert |
certmon sendet keine Telemetrie. Weitere ausgehende Verbindungen gibt es nicht; neue Quellen (PKI, Windows-Server, Benachrichtigungen) ergänzen diese Tabelle, wenn sie dazukommen.
Dienstkonto
Standard: virtuelles Konto
NT SERVICE\certmon. Im Netzwerk tritt der Dienst als Computerkonto auf. Nichts vorzubereiten.Optional gMSA (empfohlen, sobald certmon auf andere Server zugreift):
New-ADServiceAccount -Name gmsa-certmon -DNSHostName gmsa-certmon.corp.example -PrincipalsAllowedToRetrieveManagedPassword 'SRV-CERTMON$' # auf dem certmon-Server: Install-ADServiceAccount gmsa-certmonDas Konto braucht das Recht „Als Dienst anmelden“ (Gruppenrichtlinie oder lokale Sicherheitsrichtlinie) und – für „Mit Windows anmelden“ – die HTTP-SPNs des Servers:
setspn -S HTTP/srv-certmon.corp.example CORP\gmsa-certmon$undsetspn -S HTTP/srv-certmon CORP\gmsa-certmon$. Installation mit/SERVICEACCOUNT="CORP\gmsa-certmon$".
Berechtigungsmodell
certmon braucht keine Domänen-Admin-Rechte, auch nicht indirekt. Übersicht, was das Dienstkonto (NT SERVICE\certmon greift im Netz als Computerkonto des certmon-Servers zu; alternativ ein gMSA) wo darf:
| Wo | Recht | Wofür | Wie einrichten |
|---|---|---|---|
| Active Directory | Lesen (Standard für authentifizierte Benutzer) | PKI-Objekte, Computerkonten, Gruppen | nichts zu tun |
| Jede Enterprise-CA | CA-Recht „Lesen“ | CA-Datenbank per DCOM (ausstehende/fehlgeschlagene Anforderungen, ablaufende Zertifikate) | CA-Konsole > Sicherheit (siehe unten) |
| Überwachte Windows-Server | Mitglied der Gruppe certmon-Reader → nur JEA-Endpunkt certmon.Reader (zwei lesende Funktionen) | Zertifikatsspeicher, Bindungen, automatische Registrierung | jea\Install-CertmonJea.ps1, siehe JEA-Endpunkt für Windows-Server |
| Netzwerkgeräte | keine (nur TLS-Handshake ohne Anmeldung) | Zertifikate von NAS, USV, Firewall … | nichts zu tun |
| Microsoft 365 (optional) | App-Registrierung mit Application Mail.Send, per RBAC auf ein Postfach beschränkt | E-Mail über Graph | Benachrichtigungen |
| LDAP-Verzeichnis (optional) | Suchkonto mit Leserecht (bei AD optional) | LDAP(S)-Anmeldung | Einstellungen > LDAP-Anmeldung |
| Sicherungsordner (optional) | Schreiben | automatische Sicherung | Freigabe-/NTFS-Recht für das Computerkonto bzw. gMSA |
| certmon-Server lokal | Datenordner C:\ProgramData\certmon nur SYSTEM, Administratoren, Dienstkonto | Datenbank, Secrets, Logs | das Setup |
Im Dashboard: Betrachter sehen, Operatoren bestätigen, schalten stumm und starten Läufe, Administratoren ändern Quellen, Kanäle, Regeln und Schwellwerte, Systemadministratoren verwalten Benutzer, Gruppen, Anmeldung, Lizenz, Zertifikat und Sicherung. Alle Rollen werden serverseitig geprüft; jede Änderung steht im Audit-Log.
PKI-Überwachung vorbereiten
certmon liest die PKI nur. Es braucht dafür:
- Lesezugriff auf das AD – jedes Domänenkonto hat ihn; das virtuelle Dienstkonto nutzt im Netz das Computerkonto.
- Zertifizierungsstellen-Verwaltungstools auf dem certmon-Server, damit die CA-Datenbanken gelesen werden können (ablaufende ausgestellte Zertifikate, Anforderungen, Vorlagen):
Install-WindowsFeature RSAT-ADCS-Mgmt. Das Setup weist darauf hin, wenn sie fehlen. Ohne sie laufen alle übrigen PKI-Prüfungen trotzdem (BefundISSUED_DB_UNREADABLE). - Das CA-Recht „Lesen“ für das Dienstkonto auf jeder Enterprise-CA: CA-Konsole > Eigenschaften der CA > Sicherheit > Computerkonto des certmon-Servers (bzw. gMSA) hinzufügen, nur „Lesen“ erlauben. Keine weiteren Rechte, kein Remoting auf die CA.
Danach unter Einstellungen > PKI (Active Directory) eine Quelle anlegen; ohne Angabe prüft certmon die Gesamtstruktur der Domäne des certmon-Servers. Offline-Stamm-CAs, auf deren Sperrliste kein Zertifikat im AD verweist, als zusätzliche Sperrlisten-URL eintragen.
Windows-Server-Überwachung vorbereiten
certmon liest Windows-Server nur über den JEA-Endpunkt certmon.Reader; Einrichtung, Rechte und Prüfung stehen in JEA-Endpunkt für Windows-Server. Kurz: AD-Gruppe (z. B. certmon-Reader) mit dem certmon-Dienstkonto anlegen, C:\Program Files\certmon\jea\Install-CertmonJea.ps1 -Account <Gruppe> auf jedem Server ausführen (z. B. per GPO), certmon-Dienst einmal neu starten, unter Einstellungen > Windows-Server eine Quelle anlegen. Der certmon-Server muss Domänenmitglied sein (Kerberos); es werden keine Passwörter gespeichert.
Proxy (optional)
Ausgehendes HTTPS – Microsoft 365 (Graph), Teams-Workflows, Webhooks, Lizenzprüfung und Downloads von Sperrlisten und Zertifikaten (CDP/AIA) – läuft auf Wunsch über einen Proxy: Einstellungen > Proxy (Systemadministratoren). Modi: System (Umgebungsvariablen HTTPS_PROXY/NO_PROXY; für einen Dienst meist direkt), direkt, oder ein eingetragener Proxy mit Ausnahmen (z. B. *.contoso.local) und Anmeldung als Dienstkonto (Kerberos/NTLM) oder mit eigenem Konto (Passwort verschlüsselt). Änderungen gelten sofort; Verbindung testen prüft den Weg zu einer Adresse. SMTP, LDAP, WinRM und der Netzwerk-Scan nutzen nie einen Proxy. Die Kettenprüfung von Windows holt Sperrlisten über den WinHTTP-Proxy (netsh winhttp set proxy).
Benachrichtigungen einrichten
Kanäle (SMTP, Microsoft 365, Teams, Webhook), Regeln und Wartungsfenster unter Einstellungen > Benachrichtigungen; Anleitung mit App-Registrierung für Microsoft 365 und Teams-Workflow in Benachrichtigungen. Für Links in den Nachrichten die Dashboard-Adresse eintragen (z. B. https://certmon.contoso.local:8443).
LDAP(S)-Anmeldung (optional)
Für Clients außerhalb der Domäne unter Einstellungen > LDAP-Anmeldung (Systemadministratoren): Server wie im Zertifikat, LDAPS (636) oder StartTLS (389) – unverschlüsselt ist nicht möglich; das Serverzertifikat muss dem certmon-Server vertraut sein. Active Directory: Rollen über dieselben Gruppenzuordnungen wie die Windows-Anmeldung (SIDs, verschachtelte Gruppen zählen); ein Suchkonto ist optional. OpenLDAP/FreeIPA: Suchkonto nötig, Gruppen werden unter Einstellungen > Gruppen mit ihrem Distinguished Name zugeordnet. TOTP gilt für dieselben Rollen wie bei der Windows-Anmeldung. Mit Testanmeldung lässt sich ein Konto prüfen, ohne sich anzumelden.
Sicherung und Wiederherstellung
Einstellungen > Sicherung (Systemadministratoren): Download einer Sicherung nach erneuter Eingabe des TOTP-Codes, oder täglich automatisch in einen Ordner (lokal oder UNC; das Dienstkonto braucht Schreibrecht – bei NT SERVICE\certmon greift auf Freigaben das Computerkonto zu). Die Datei (.cmbackup) enthält Datenbank und Secrets, verschlüsselt mit dem Sicherungskennwort (Argon2id, AES-256-GCM); ohne Kennwort ist sie wertlos. Port und Dashboard-Zertifikat stehen in settings.json bzw. im Zertifikatsspeicher der Maschine und gehören nicht zur Sicherung.
Wiederherstellen (dieselbe oder eine neue Maschine, dort vorher certmon installieren), als Administrator:
Stop-Service certmon
& 'C:\Program Files\certmon\certmon.exe' --restore D:\Backup\certmon\certmon-20261001-020000.cmbackup
Start-Service certmoncertmon fragt nach dem Kennwort, bewahrt die bisherige Datenbank als certmon.db.before-restore-<Zeit> auf, verschlüsselt die Secrets mit dem DPAPI der Maschine neu und schreibt einen Audit-Eintrag (Ereignis 1304). Sicherungen einer neueren certmon-Version werden abgelehnt. Danach melden sich alle Benutzer neu an.
Installation mit Oberfläche
certmon-setup-<version>.exe starten (Setup mit Inno Setup, eine Datei für Deutsch und Englisch), Sprache und Zielordner wählen (Standard C:\Program Files\certmon). Das Setup
- kopiert das Programm, registriert den Dienst
certmon(automatischer Start, verzögert; Neustart nach Fehlern) und die Ereignisquellecertmon, - bereitet mit Administratorrechten den Datenordner
C:\ProgramData\certmonvor (ACL: nur SYSTEM, Administratoren, Dienstkonto), erzeugt die Installations-Entropie für die Verschlüsselung und – falls kein Zertifikat angegeben ist – ein selbstsigniertes Dashboard-Zertifikat (RSA 3072, 2 Jahre, FQDN und Kurzname), - legt die Firewall-Regel an (Domänenprofil) und startet den Dienst. Die letzte Seite nennt die Dashboard-Adresse und den Ort des Einmal-Tokens.
Schlägt Schritt 1–3 fehl, meldet das Setup den Schritt; die Dateien bleiben installiert (erneut ausführen genügt). Details stehen im Setup-Protokoll (/LOG) und im Ereignisprotokoll.
Stille Installation
certmon-setup-0.9.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /LOG="certmon-setup.log" /PORT=8443 /LANGUAGE=de
certmon-setup-0.9.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SERVICEACCOUNT="CORP\gmsa-certmon$" /CERTTHUMBPRINT=0123456789ABCDEF0123456789ABCDEF01234567| Parameter | Standard | Bedeutung |
|---|---|---|
/PORT= | 8443 | HTTPS-Port des Dashboards (auch Firewall-Regel) |
/SERVICEACCOUNT= | NT SERVICE\certmon | Dienstkonto; gMSA als DOMÄNE\name$ (ohne Passwort) |
/CERTTHUMBPRINT= | – | Fingerabdruck eines Zertifikats in LocalMachine\My mit privatem Schlüssel; das Setup gibt dem Dienstkonto Lesezugriff auf den Schlüssel. Ohne Angabe: selbstsigniert (bzw. das bisher eingetragene Zertifikat) |
/LANGUAGE= | Sprache des Setups | de oder en – Ereignistexte und Standardsprache des Dashboards |
/REMOVEDATA=1 | – | nur beim Deinstallationsprogramm: löscht auch Daten und das selbstsignierte Zertifikat |
Ohne Angabe übernimmt ein Update die Werte der vorherigen Installation. Exit-Codes: 0 = in Ordnung, 20 = Dateien installiert, aber Dienst/Provisionierung/Firewall fehlgeschlagen (Protokoll prüfen), andere Werte = Codes von Inno Setup (z. B. 2 abgebrochen, 5 Fehler bei der Vorbereitung).
Ersteinrichtung
- Als lokaler Administrator das Einmal-Token lesen (die Datei ist nur für Administratoren lesbar; das Ereignisprotokoll nennt nur den Pfad, Ereignis 1200):
Get-Content C:\ProgramData\certmon\setup-token.txt https://<server>:8443/setupöffnen (das selbstsignierte Zertifikat löst eine Browserwarnung aus), Token, Benutzername und Passwort (mindestens 12 Zeichen) eingeben.- Authenticator-App einrichten (QR-Code, Link oder Schlüssel), Code bestätigen.
- Wiederherstellungscodes sicher ablegen – sie werden nur einmal angezeigt.
Danach ist /setup dauerhaft gesperrt und die Token-Datei gelöscht. Der erste Benutzer ist Systemadministrator und Administrator. Solange die Einrichtung offen ist, erzeugt jeder Dienststart ein neues Token.
Windows-Anmeldung einrichten
- Unter Einstellungen → AD-Gruppenzuordnung Gruppen (z. B.
CORP\PKI-Admins) Rollen zuordnen. Gespeichert wird die SID; Gruppen aus mehreren Domänen/Gesamtstrukturen sind möglich. Ohne Zuordnung weist certmon jeden Windows-Benutzer ab. - Für Administrator und Systemadministrator verlangt certmon nach der Windows-Anmeldung zusätzlich einen TOTP-Code (einstellbar je Rolle), weil Kerberos kein MFA auslösen kann.
- Browser: Die Dashboard-Adresse muss in der Zone „Lokales Intranet“ stehen (Edge/Chrome: Richtlinie
AuthServerAllowlist), sonst fragt der Browser nach Anmeldedaten.
Dashboard-Zertifikat tauschen
- Bei der eigenen CA ein Webserver-Zertifikat für den Server beantragen (SAN: FQDN und Kurzname), im Computerspeicher (
LocalMachine\My) installieren. - Als Administrator:
"C:\Program Files\certmon\certmon.exe" --provision --certificate <Fingerabdruck>(gibt dem Dienstkonto Lesezugriff auf den Schlüssel und trägt das Zertifikat ein) – oder im Dashboard unter Einstellungen → Dashboard-Zertifikat auswählen, wenn der Schlüssel für den Dienst bereits lesbar ist. - Dienst neu starten:
Restart-Service certmon. Keine Neuinstallation nötig.
Update
Neues Setup ausführen (interaktiv oder still, ohne Parameter). Es beendet den Dienst, ersetzt die Programmdateien und startet ihn wieder; Port, Dienstkonto und Sprache bleiben. Daten bleiben erhalten; vor einer Datenbankänderung legt certmon automatisch certmon.db.bak-<version> an. Eine ältere Version über eine neuere zu installieren, verweigert das Setup.
Deinstallation
„Apps“ bzw. „Programme und Features“ → certmon deinstallieren, oder still: "C:\Program Files\certmon\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES. Entfernt werden Programm, Dienst, Ereignisquelle und Firewall-Regel. Daten bleiben in C:\ProgramData\certmon (für eine spätere Neuinstallation). Mit /REMOVEDATA=1 werden auch der Datenordner und das selbstsignierte Zertifikat entfernt. Der Trial-Anker in der Registry bleibt immer bestehen.
Dateien, Sicherung, Fehlersuche
| Pfad | Inhalt |
|---|---|
| `C:\Program Files\certmon` | Programm, appsettings.json (Standardwerte), SBOM, THIRD-PARTY-NOTICES.txt |
C:\ProgramData\certmon\certmon.db | Datenbank (Benutzer, Einstellungen, verschlüsselte Secrets, Audit-Log, Lizenz) |
C:\ProgramData\certmon\entropy.bin | Installations-Entropie für die Verschlüsselung – ohne diese Datei sind Secrets verloren |
| `C:\ProgramData\certmon\keys` | Schlüssel für Sitzungs- und Formular-Cookies (DPAPI-geschützt) |
C:\ProgramData\certmon\settings.json | Port, Zertifikat, Log-Level, Sprache (keine Secrets) |
| `C:\ProgramData\certmon\logs` | Logdateien, täglich rotierend, 30 Tage |
Sicherung: den ganzen Ordner C:\ProgramData\certmon sichern (Dienst vorher stoppen oder VSS). Secrets sind per DPAPI an diesen Server gebunden; nach einer Wiederherstellung auf einem anderen Server müssen sie neu eingegeben werden.
Fehlersuche: Ereignisprotokoll (Quelle certmon, siehe Windows-Ereignisprotokoll), Logdateien, Get-Service certmon, Invoke-WebRequest https://<server>:8443/healthz (200 = in Ordnung, 503 = Datenbank nicht erreichbar). Zum Testen im Vordergrund (Dienst vorher stoppen, als Administrator): certmon.exe --console.
Weitere Dokumente
JEA-Endpunkt für Windows-Server
Wie certmon Windows-Server nur lesend über einen eingeschränkten PowerShell-Endpunkt abfragt: Einrichtung, Rechte, Prüfung.
Benachrichtigungen
Alarm-Logik, E-Mail per SMTP oder Microsoft 365, Microsoft Teams und Webhook mit HMAC-Signatur.
Befunde
Alle Befund-Ids mit Bedeutung und Schwere: Netzwerk-Scan, PKI und Windows-Server.
Windows-Ereignisprotokoll
Event-IDs der Quelle certmon für RMM- und SIEM-Systeme, mit Abfragebeispielen.