Ausgangssituation:
Windows Server 2008 R2 als ausstellende Zertifizierungsstelle
Windows 7 als anfordernder Client
TMG 2010 als Firewall zwischen Server- und Clientnetzwerk
Client soll automatisiert ein Computerzertifikat erhalten; eine entsprechende Gruppenrichtlinie ist eingerichtet und wird auch vom Client gezogen. Der Computer erhält jedoch kein Zertifikat und in der Ereignisanzeige erscheinen die beiden Fehlermeldungen:
Ereignis-ID: 6
Quelle: CertificateServicesClient-AutoEnrollment
Bei der automatischen Zertifikatregistrierung für lokales System ist ein Fehler aufgetreten (0x800706ba) Der RPC-Server ist nicht verfügbar.
Ereignis-ID: 13
Quelle: CertificateServicesClient-CertEnroll
Die Zertifikatregistrierung für Lokales System konnte sich nicht für ein Zertifikat Machine mit der Anforderungs-ID N/A von server.contoso.com\Root-CA (Der RPC-Server ist nicht verfügbar. 0x800706ba (WIN32: 1722)) registrieren.
Ein manuelles Anfordern des Computerzertifikats über die MMC schlägt ebenfalls fehl:
Eine Firewallregel ist auf dem TMG eingerichtet, die den Zugriff über RPC vom Clientnetzwerk auf das Servernetzwerk (bzw. den einen Server im anderen Netzwerk) erlaubt. In diesem Fall dürfen 2 Clients auf den Exchange zugreifen, der zugleich die Rolle der Zertifizierungsstelle inne hält:
Die Protokollierung des TMG zeigt während zum Zeitpunkt der Zertifikatsanforderung den Zugriff über Port 135 und keine Fehler:
Da TMG in RPC-Regeln eine „Strikte RPC-Einhaltung erzwingt“, muss über das Kontextmenü der Firewallregel….
….und der dort befindlichen RPC-Protokollrichtlinie die strikte RPC-Einhaltung deaktiviert werden:
In der TMG-Protokollierung ist nun ersichtlich, dass nicht nur über Port 135 sondern einen beliebigen Portzwischen 1024 und 65535 gesprochen wird (im Beispiel über Port 15968):
Dazu auf der Zertifzierungsstelle:
> Ausführen | dcomcnfg.exe | [ENTER]
> Komponentendienste | Computer | Arbeitsplatz | DCOM-Konfiguration
> Rechstklick: CertSrv Request | Eigenschaften | Reiter „Endpunkte“
> Hinzufügen | Statischen Endpunkt verwenden … (beliebigen Port zwischen 1024 und
65535 wählen, im Beispiel diesmal Port 15961. Somit können wir prüfen ob die
Einstellungen greifen.) | OK | OK
1) certutil -setreg ca\interfaceflags +0x8
2) net stop certsvc & net start certsvc
Auf dem TMG ein Protokoll wie folgt anlegen (bzw. mit anderem gewählten Port)….
Danach klappt es auch mit dem Zertifikat 😉
Quellen:
Technet Wiki
Technet Blog
isaserver.org