Exchange 2007  mit Zertifikaten

Mit Exchange 2007 ist es natürlich weiterhin möglich, auch ActiveSync über Client-Zertifikat abzusichern. Allerdings sind die Befehle und Methoden etwas anders. Die Schritt für Schritt-Anleitung "Step-by-Step Guide to Deploying Windows Mobile-based Devices with Microsoft Exchange Server 2003 SP2 " auf http://www.microsoft.com/technet/solutionaccelerators/mobile/deploy/msfp_a.mspx gilt so nicht mehr, da die XML-Datei über Autodiscover abgelöst wurde. Dies funktioniert aber nur mit Windows Mobile 6.1 Geräten.

ISA und Client Zertifikate
Wenn Sie einen ISA Server für Exchange einsetzen, dann funktionieren Clientzertifikate nur, wenn der ISA als "Router" den Server im Tunnelmode veröffentlicht. Seit ISA2006 kann dies auch über die sicherere Webveröffentlichung funktionieren. Dazu muss der Server aber Mitglied in der Domain sein, da der ISA die Anmeldung prüft und per Kerberos dann zum CAS-Server geht.
Siehe auch: Publishing Exchange Server 2007 with ISA Server 2006
Appendix C: Configuring Certificate-Based Authentication with Exchange ActiveSync through ISA Server
http://technet.microsoft.com/en-us/library/bb794751.aspx

Basisfunktion sicherstellen

Ehe Sie gleich in die Vollen gehen, sollten sie sicherstellen, dass Sie überhaupt mit ActiveSync arbeiten können. Dazu gehört:

  • PDA erreicht Server
    Hier zählen Firewall, Portfilter etc. aber auch die Anbindung des PDA per ActiveSync oder Drahtlosverbindung dazu, damit der Client überhaupt erst den Server erreicht. Das lässt sich z.B. auch einfach durch den Aufruf der URL mit dem Pocket Explorer prüfen
  • SSL auf dem Server
    Damit die Daten nicht unsicher übertragen werden, sollten Sie auf jeden Fall ein SSL-Zertifikat auf dem Server installieren. Wer kein offizielles Zertifikat einsetzt, muss sich dann Gedanken über die Verteilung der StammCA auf den PDA Gedanken machen
  • Anmeldung mit Benutzername/Kennwort
    Allein mit den Anmeldedaten muss dann ein Abgleich möglich sein. Ansonsten ist der Benutzer vielleicht nicht für ActiveSync freigeschaltet
  • Richtlinien wirken
    Auch die Richtlinien (Kennworte etc.) müssen auf dem Endgerät aktiv werden
  • Proxy/Firewall
    Wenn ActiveSync aus dem Internet nicht direkt auf dem Exchange Server landet, sondern über weitere Systeme geleitet wird, dann muss auch das erst einmal gelöst werden

Damit ist die Basisfunktion bereit gestellt und wir können an die weiteren Umsetzungen gehen.

Provisioning einrichten (Autodiscover)

Was mit Exchange 2003 noch durch eine XML-Datei und VBScript-Uploads in das AD verbunden war, ist mit Exchange 2007/2010 ebenfalls in die PowerShell gewändert, Zumindest wenn Sie Windows Mobile 6.1 oder höher nutzen. Hier kann der PDA die von Exchange 2007 bereit gestellten "Autodiscover"-Funktionen nutzen. Der Anwender trägt dazu seine Mailadresse ein und der PDA fragt über https mit dem Domainnamen von der Firma die Einstellungen als XML-Datei ab. Allerdings sind dazu noch einige Einstellungen erforderlich. Hier die relevanten Parameter beim ActiveSync Virtual Directory

Set-ActiveSyncVirtualDirectory
  -Identity "COMPUTERNAME\Microsoft-Server-ActiveSync (Standardwebseite)"
  -ExternalURL "https://mobil.firma.tld/"
  -ActiveSyncServer "https://mobil.firma.tld/"
  -MobileClientCertificateAuthorityURL http://caserver/
  -MobileClientCertificateProvisioningEnabled $true
  -MobileClientCertTemplateName "User"

Die Parameter für "ExternalURL" helfen den Windows Mobile 6.1-Geräten per Autodiscover die richtige URL für den Zugangs zu finden.

Die Einstellungen selbst werden am virtuellen ActiveSync-Verzeichnis in der Konfiguration-Partition gespeichert. Sie sollten aber hier nichts manuell verändern sondern immer die PowerShell verwenden:

dn: CN=Microsoft-Server-ActiveSync (Default Web Site),CN=HTTP,CN=Protocols,CN=SRV01,CN=Servers,
CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=Net at Work GmbH,
CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=msxfaq,DC=de
changetype: add
msExchMobileClientCertTemplateName: MSXFAQ-User
msExchMobileClientCertificateAuthorityURL: http://caserver/
msExchMobileClientFlags: 3

 

Die genauen Details zum Provisioning unter Exchange 200/2010 reiche ich nach

Da der PDA über HTTPS geht, muss er natürlich dem Aussteller des Zertifikat des Webservers vertrauen. Insofern sollten Sie solche Einstellungen nur mit offiziellen Zertifikaten durchführen.

Installation auf dem PDA

Ehe Sie nun gleich auf dem Exchange Server den Zertifikatzwang aktivieren, sollten Sie alle Bestandsbenutzer auffordern sich eine gültiges Zertifikat zu besorgen. Verbinden Sie dazu ihr Mobilgerät mit dem Desktop und starten Sie ActiveSync (Bis Windows XP) bzw. das Windows Mobile Geräte Center (Vista und höher) und holen Sie sich ein Zertifikat. Ein How-to finden Sie auf den beiden Seiten:

Danach hat ihr Client passendes Zertifikat

Zertifikatanmeldung erzwingen

Die Einrichtung der zertifikatbasierten Authentifizierung unter Exchange 2003 war relativ aufwändig mit einer XML-Datei, die im Active Directory. Dann schalten Sie ActiveSync auf "Zertifikate Anfordern". Das ist ein einziger PowerShell-Befehl oder zwei Checkboxen in der MMC.

Set-ActiveSyncVirtualDirectory -Identity :"ExchSrvr\Microsoft-Server-ActiveSync (Default Web Site)" -BasicAuthEnabled:$false -ClientCertAuth:"Required"

Damit wird nur das virtuelle Verzeichnis "Microsoft-Server-ActiveSync" geändert, um Anmeldungen per Zertifikat zu erfordern. Er nimmt z.B. sämtliche Authentifizierungsoptionen heraus.

Der PDA bekommt beim Zugriff eine Fehlermeldung, dass er sich mit einem Zertifikat anmelden muss. Die Funktion können Sie recht einfach testen, indem Sie mit einem Internet Explorer oder dem Pocket Explorer auf diese URL zugreifen.

Diese Funktion können Sie auch mit dem Pocket Internet Explorer ausführen. Wichtig ist dabei, dass keine weiteren Zertifikatwarnungen kommen.

Prüfen und Fehlersuche

Nach der Installation des Client Zertifikats und dem umstellen des Webservers muss der Client sein Zertifikat an den Webserver senden. Fehler, die passieren können:

  • StammCA fehlt auf dem PDA
    Der PDA akzeptiert und sendet nur Client-Zertifikate, denen er selbst vertraut. Leider kann man eigene StammCAs nicht per Gruppenrichtlinie verteilen, so dass Sie das Stammzertifikat manuell installieren müssen.
  • Client-Zertifikat nicht auf dem PDA
  • StammCA fehlt auf dem Webserver
    Auch der IIS muss natürlich das ausgestellte Zertifikat prüfen. Dazu muss auch er der ausstellenden CA vertrauen. Wenn es sich um eine AD-Integrierte CA handelt und der Exchange Server im gleichen Forest ist, dann sollte die StammCA über Gruppenrichtlinien schon vorliegen.
  • IIS prüft Clientzertifikat (CRL)
    Der IIS prüft per Default die eingehenden Clientzertifikate nicht nur anhand des Namens und Gültigkeitsdauer, sondern fragt auch die Zertifizierungsstelle ab. ist die CRL nicht erreichbar, dann blockiert dies auch die Anmeldung. Schauen Sie sich also genau die "Revokation-URL" im Client Zertifikat an, ob der Exchange Server diese URL der internen CA erreichen kann.
  • SAN-Zertifikate
    Einige Firewalls und Loadbalancer (auch ISA2006) haben derart Probleme mit SAN-Zertifikaten, dass Sie nur den ersten Namen in der Liste der möglichen Namen nutzen. Das ist bei Veröffentlichungsregeln zu beachten. Beachten Sie aber, dass das erste System, das vom PDA per ActiveSync angesprochen wird, die Authentifizierung durchführen muss. Clientzertifikate kann man nicht als Reverse Proxy weiter geben.
  • Vermurkster IIS
    Es kann durchaus sein, dass Sie durch mehrere KonfigurationsÄnderungen das virtuelle Verzeichnis "Microsoft-Server-ActiveSync" etwas durcheinander gebracht haben. Dann kann ein "Neu" machen helfen. Folgende PowerShell Befehle erledigen dies auf einem deutschen Server (Bitte ihren Servernamen einsetzen):

remove-ActiveSyncVirtualDirectory servername\Microsoft-Server-Activesync
New-ActiveSyncVirtualDirectory -WebSiteName "Standardwebseite"

  • Kennwort ändern bricht nicht ActiveSync
    Da die zertifikatbasierte Anmeldung zwingend SSL benötigt, kann man als Administrator nicht mal einfach per Paketmitschnitt die Funktion validieren. Aber ändern Sie doch einfach ihr Windows Kennwort. Dank der zertifikatbasierten Anmeldung funktioniert ActiveSync unabhängig von dem Windows Kennwort. Nur die Verfallszeit oder ein Zurückziehen des Zertifikats kann später den Abgleich verhindern.
  • Probleme mit dem Zertifikatserver
    Prüfen Sie das IIS-Log, Hier finden Sie die Anfrage des Clients und hoffentlich die Erfolgsmeldung.(200). Auch ein Blick in die MMC für Zertifikate kann Aufschluss geben, welche Zertifikate ausgestellt wurden.
POST /certsrv/certfnsh.asp - 80 - 10.1.1.10 CertEnroll 401 2 2148074254
POST /certsrv/certfnsh.asp - 80 MSXFAQ\Administrator 10.1.1.10 CertEnroll 200 0 0
GET /certsrv/certnew.p7b ReqId=17&Enc=b64 80 - 10.1.1.10 CertEnroll 401 2 2148074254
GET /certsrv/certnew.p7b ReqId=17&Enc=b64 80 MSXFAQ\Administrator 10.1.1.10 CertEnroll 200 0 0
  • Probleme mit dem Zertifikatsserver Teil 2
    Auch das Eventlog auf dem Zertifikatsserver kann Aufschluss bieten. Die folgende Meldung zeigt, dass auch beim Ausstellen schon die CRL geprüft wird und erreichbar sein muss.

CA Fehler im Eventlog

ein ein Bick die die MMC der Zertifizierungsstellt zeigt, welche Zertifikate ausgestellt wurden und fehlgeschlagen sind:

Ein weiteres Werkzeug ist "CERTUTIL". Folgende Leute hilft z.B. die Sperrlistenpunkte zu prüfen.

certutil -URL pfad/name-der-ca.crt

certutil -setreg CA\LogLevel 2

certutil -cainfo

Eine kleine grafische Oberfläche erlaubt dann die Prüfung der verschiedenen Verteilpunkte.

certutil

Auf einem PC im Active Directory sollten fast alle Punkte funktionieren. Aus dem Internet muss zumindest die HTP-Verteilung sicher sein. Auch der Exchange 2007 CAS-Server muss diese Daten auswerten können. Die eigentliche Exchange Konfiguration ist also der einfachste Teil bei der Nutzung von Clientzertifikaten zur Anforderung.

Weitere Links