Exchange 2016 – Enable & Troubleshoot Certificate Based Authentication for OWA/Active Sync

Um die zertifikatsbasierte Authentifizierung des Exchange 2016 zu aktivieren empfehle ich, sich an folgenden Technet-Artikel zu halten. Dieser beschreibt die Konfiguration schritt für schritt.
Der anschließende Test war jedoch wenig erfolgreich und brachte auf den Client Geräten immer den Fehler „Anmeldung fehlgeschlagen“. Die Analyse des IIS Logfiles bestätigte in dem Fall die Fehlermeldung:

2018-01-17 14:14:41 W3SVC1 MSEXCHSRV 10.0.1.212 OPTIONS /Microsoft-Server-ActiveSync/default.eas Cmd=OPTIONS&User=domain%5CUser.Name&DeviceId=SEC15BF1D9F90A8E&DeviceType=SamsungDevice 443 - 10.0.0.213 HTTP/1.1 Android-SAMSUNG-SM-G955F/101.700 - - oma.fqdn.net 403 16 2148204809 184 375 452
2018-02-22 08:24:54 W3SVC3 EXCHANGESRV 10.0.1.212 GET / - 9943 - 10.0.0.5 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/63.0.3239.132+Safari/537.36 - - exchangesrv.fqdn.info:9943 403 16 2148204809 1423 434 4230

Da der Microsoft Exchange Health Manager (+ Recovery) durchgängig Testaufrufe machen, wird das IIS Logfile schnell unübersichtlich gefüllt. Daher hatte ich einfach eine neue Site im IIS Manager erstellt und dort unter einem anderem Port Binding die Authentifizierung via Client Zertifikate getestet. (Unterer Logeintrag) Man kann aber auch den Health Manager Dienst temporär deaktivieren, dass funktioniert auch.
Zurück zur Fehlermeldung, welche im Detail wie folgt aussieht:

403 16 2148204809
  • 403 = HTTP Statuscode (Authentication Failed)
  • 16 = Subfehler (Client certificate is untrusted or invalid.)
  • 2148204809 = Detaillierter Fehlercode (0x800b0109 CERT_E_UNTRUSTEDROOT)

Sucht man nach der Fehlermeldung findet man folgenden Technet-Artikel, der eigentlich auf den IIS 8 bezogen ist. Windows Server verwendet IIS 10 – aber der Artikel trifft auch darauf zu.
Hintergrund: Seit Windows Server 2012 wurden strengere Überprüfungen für die zertifikatsbasierte Authentifizierung eingeführt. Einer dieser Checks prüft ob sich im Zertifikatsspeicher (Trusted Root Certification Authorities) auch wirklich nur sogenannte Root-Zertifikate befinden. Ein Root Zertifikat muss logischerweise immer selbst-signiert sein. Wenn sich dort ein Zertifikat befindet, was von einer anderen Zertifikatstelle ausgestellt wurde, ist dies eigentlich ein „Zwischenzertifikat / Intermediate“ und gehört an einen anderen Zertifikatsspeicherort.
In meinem Fall befand sich das „StartCom Class 3 OV Server CA“ in den Root-CA’s welches den Fehler produzierte. Um den Fehler zu beheben, müssen alle nicht selbst-signierten Zertifikate aus dem Root-CA entfernt bzw. zu den Zwischenzerifikaten verschoben werden.
Um bei der Vielzahl von Zertifikaten nicht alle händisch zu überprüfen kann man dies per Powershell identifizieren:

Get-Childitem cert:\LocalMachine\root -Recurse |
    Where-Object {$_.Issuer -ne $_.Subject}

Um die Zertifikate anschließend in den Speicher für „Intermediate Certification Authorities“ zu verschieben kann man folgenden Befehl nutzen:

Get-Childitem cert:\LocalMachine\root -Recurse |
    Where-Object {$_.Issuer -ne $_.Subject} |
    Move-Item -Destination Cert:\LocalMachine\CA

Anschließend den kompletten Server neustarten. Eventuell reicht auch nur ein Neustart des IIS (W3SVC). Hatte in meinem Fall jedoch nicht ausgereicht.

Exchange 2016 und WMF 5.0 – Management Shell Fehler

Installiert man das Windows Management Framework 5.0 auf einem Windows Server 2012 R2 um z.B. die aktuelle Powershell 5.0 zu bekommen, sollte man vorher prüfen ob nicht auch die Exchange Management Shell verwendet wird.
Sonst führt dies zu folgendem Fehler: „Cannot find path “ because it does not exist.“

VERBOSE: Connecting to TESTDC.domain.info.
New-PSSession : Cannot find path '' because it does not exist.
At line:1 char:1
+ New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Micr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], RemoteExc
   eption
    + FullyQualifiedErrorId : PSSessionOpenFailed
VERBOSE: Connecting to TESTDC.domain.info.


Das Windows Management Framework 5.0 findet man unter den installierten Updates (KB3134758).
Und wer lesen kann ist klar im Vorteil: In den System Requirements steht nichts von Powershell 5.0. (Aktueller Stand bei Exchange CU6)


Also Update entfernen und siehe da – alles geht 😉

Disk Timeout aendern auch für Exchange recommended

Wer den folgenden Reg-Key schon mal gesehen hat, hat entweder viel mit Vmware View zu tun oder kennt sich allgemein etwas besser mit Windows aus 🙂
Bei den verschiedenen Client-VM’s via Vmware View wird recommended den TimeoutValue auf 180 Sek. zu setzen.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\TimeOutValue

Nun habe ich im gelesen, dass Microsoft ebenfalls die Anpassung für einen Exchange-Server vorsieht. -> Blogpost
Je nach Storage:

ScenarioRecommendation
Direct-Attached Storage
  • Reduce Windows disk TimeOutValue to 20 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash
SAN-Attached RAID Storage
  • Reduce Windows disk TimeOutValue to 20 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash
JBOD Storage
  • Increase Windows disk TimeOutValue to 180 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash

 

iPhone 4S konfigurieren für Exchange Active Sync 2010 und WLAN 802.1X via Zertifikate

Servus,
aus gegebenem Anlass schreibe ich hier mal eine Anleitung für das neue iPhone 4S. (Funktioniert wohl mit älteren Versionen ebenfalls)
Da es doch oft nervig ist, wenn man sein Windows-Kennwort immer an mehreren Stellen ändern muss – dachte ich mir dies für das Handy komplett mit Zertifikaten abzulösen.
Man benötigt:
– Root Zertifikat
– User Zertifikat
(Auf die Einstellungen des Access-Points und Exchange/Forefront gehe ich hier mal nicht näher ein.)
Für die vereinfachte Konfiguration des iPhone gibt es ein Konfigurationstool, momentan in der Version 3.3.
iPhone-Konfigurationsprogramm 3.3
Windows: https://support.apple.com/kb/DL926?viewlocale=de_DE
Mac OSX: https://support.apple.com/kb/DL851?viewlocale=de_DE
Innerhalb der Software erstellt man ein Konfigurationsprofil, was man dann den angeschlossenen Geräten zuweisen kann.

Zertifikate importieren
Schritt 1: Hier müssen das Root sowie das User Zertifikat importiert werden.

Schritt 2: Exchange: Server Adresse eingeben, ggf. SSL verwenden und Zertifikat auswählen. (Einschl. Kennwort)

Schritt 3: W-Lan konfiguration | SSID eingeben und Authentifizierungsprotokolle auswählen

Schritt 4: Im Reiter "Authentifizierung" muss das Userzertifikat ausgewählt werden.

Schritt 5: Abschließend noch unter "Vertrauen" das eigene Root-Zertifikat auswählen.

Wie schon oben beschrieben muss nun das Konfigurationsprofil noch dem Gerät zugewiesen werden. Hat man auf Installieren geklickt muss es nochmal auf dem Handy selbst bestätigt werden.
 
Nachtrag: das iPhone Konfigurationsprogramm gibt es nun in der Version 3.4 | Bisher sind mir aber keine gravierenden Neuerungen aufgefallen.