In diesem Scenario wird die Verwendung des Exchange 2007 Autodiscovery Dienstes für den internen und externen Einsatz unter den folgenden Bedingungen erläutert:

  • keine Firewall mit Reverse Proxy, das heisst Port 443 landet direkt auf dem CAS Server
  • unterschiedlicher DNS Namensraum für intern und extern
  • es wird ausschließlich mit einer privaten Microsoft Enterprise Zertifizierungsstelle gearbeitet
  • des CAS Server heisst CAS1
  • es gibt im internen DNS einen CNAME autodiscover der auf CAS1 zeigt
  • es gibt im externen DNS einen A-Record autodiscover und einen A-Record mail die auf die externe IP des CAS Server zeigen (in der Regel die Firewall)
    • alternativ wird ab Outlook 2007 SP1 auch folgender Servicerecord unterstützt: Service: _autodiscover
      Protocol: _tcp Port Number: 443
      Host: mail.kossert.com
  • der Client vertraut dem Root Zertifikat der internen Zertifizierungsstelle
    • falls dies nicht praktikabel ist, muss mit kostenpflichtigen, externen Zertifikaten gearbeitet werden

Wir nehmen mal die folgenden DNS Namen an. Die interne Domäne heisst kossert.intra, die externe kossert.com.

Für beide Zugriffsarten (LAN/Internet) muss die Zertifikatskette einwandfrei und ohne Warnungen funktionieren.

Um dies zu gewähleisten kann man ein Zertifikat mit verschiedenen DNS Namen im Feld "Alternativer Antragstellername" einsetzen. Dieses Zertifikat wird über folgenden Powershell Befehl beantragt:

New-ExchangeCertificate -generaterequest -subjectname "C=DE,DC=Firmenname,O=Firmenname,CN=externe Domäne (in diesem Fall kossert.com)" -domainname mail.kossert.com,autodiscover.kossert.com, autodiscover.kossert.intra,cas1.kossert.intra,cas1 -path c:\certrequest_cas01.txt

Den Inhalt des Textfiles c:\certrequest_cas01.txt gibt man in die Website der Zertifizierungsstelle ein. Dieser Vorgang solle von CAS Server aus durchgeführt werden.

image

image

Die Zertifikatsvorlage für die Antragsstellung lautet "Webserver".

Nachdem das Zertifikat ausgestellt  wurde, installiert man das Zertifikat mit folgendem Powershell Befehl auf dem CAS Server.

Import-ExchangeCertificate -Path c:\filename.cer

Falls der CAS Server auch HUB/Transport Server ist, gibt es anschließend einen Fehler 12014 im Anwendungslog.

 image

Das kommt daher, das sich das Transport Zertifikat geändert hat. Man muss nun das neue Zertifikat aktivieren.

Enable-ExchangeCertificate <Fingerabdruck>  -services IIS,POP,SMTP,IMAP (den Fingerabdruck findet man im Zertifikat)

Nach dem Restart des Transport Dienstes sollte nun kein Fehler mehr auftreten.

Nachdem das Zertifikat nun installiert wurde, muss der Autodiscovery Dienst für die internen und externen Zugriff konfiguriert werden.

INTERN

Set-ClientAccessServer -Identity CAS1 -AutodiscoverServiceInternalUri https://autodiscover.kossert.intra/autodiscover/autodiscover.xml

Set-WebServicesVirtualDirectory -Identity "CAS1\EWS (Standardwebsite)" -InternalUrl https://autodiscover.kossert.intra/ews/exchange.asmx

Set-OABVirtualDirectory -Identity "CAS1\oab (Standardwebsite)" -InternalUrl https://autodiscover.kossert.intra/oab

falls Unified Messaging eingerichtet ist:

Set-UMVirtualDirectory -Identity "CAS1\unifiedmessaging (Standardwebsite)" -InternalUrl https://autodiscover.kossert.intra/unifiedmessaging/service.asmx

EXTERN

Enable-OutlookAnywhere -Server CAS1 -ExternalHostname "mail.kossert.com" -ExternalAuthenticationMethod "Basic" -SSLOffloading:$False

Set-OABVirtualDirectory -identity "CAS1\oab (Standardwebsite)" -externalurl https://mail.kossert.com/OAB -RequireSSL:$true

Set-WebServicesVirtualDirectory -identity "CAS1\EWS (Standardwebsite)" -externalurl https://mail.kossert.com/EWS/Exchange.asmx -BasicAuthentication:$True

falls Unified Messaging eingerichtet ist:

Set-UMVirtualDirectory -Identity "CAS1\unifiedmessaging (Standardwebsite)" -ExternalUrl https://autodiscover.kossert.com/unifiedmessaging/service.asmx

Ein sehr beliebtes Thema ist die multiple Passwortanforderung von Outlook bei der externen Anmeldung. Das kommt daher, dass der Autodiscovery Dienst eine Überprüfung des konfigurierten CertPrincipalName mit dem CertPrincipalName im Zertifikat konfiguriert.

image

Damit dies nicht fehl schlägt, muss der CertPrincipalName auf dem CAS Server konfiguriert werden.

set-OutlookProvider -id EXPR -CertPrincipalName "msstd:kossert.com"

image

Anschließend muss die neue Konfiguration auf dem CAS Server aktiviert werden. Dies geschieht im Internetinformationsdienste-Manager. Im Bereich Anwendungspools gibt es einen Eintrag mit dem Namen MSExchangeAutodiscoverAppPool. Im Kontextmenü gibt es den Punkt "Wieder verwenden". Dieser Menüpunkt aktualisiert die Konfiguration des Autodiscovery Dienstes.

Anschließend sollte die Verbindung intern wie auch extern mit Outlook Anywhere funktionieren. Falls es Probleme geben sollte bietet Outlook 2007  mit dem eingebautet Verbindungstest (Kontextmenü des Outlook Tasklisten Icon) ein sehr gutes Troubleshooting Werkzeug.

image 

Falls das Exchange Publishing über einen ISA 2004/2006 realisiert werden soll, so ist dabei die Reihenfolge der Server Namen in der "Subject Alternative Name" Liste (SAN) zu berücksichtigen.

siehe auch: http://blogs.technet.com/isablog/archive/2007/08/29/certificates-with-multiple-san-entries-may-break-isa-server-web-publishing.aspx

Oftmals wird ein DHCP Server außer Betrieb genommen ohne vorher die Autorisierung des DHCP Server zurückzunehmen. Wenn der Server nicht mehr ereichbar ist, ist nicht mehr ohne weiteres möglich, die Authorisierung eines Servers aufzuheben. Die Console auf dem Server meldet dann, dass die Maschine nicht ereichbar ist und verweigert die Aufhebung der Autorisierung. Das gleiche passiert mit NETSH.

Interessanter Weise ist die gleiche Funktion von einem Client, der die Admin Konsolen installiert hat, problemlos möglich. Auch wenn die Maschine nicht mehr erreichbar ist.

image

War unter Exchange 2000/2003 noch möglich die Eventlog Protokollierung in einer übersichtlichen GUI zu setzen, so sind diese Optionen bei Exchange 2007 in die Powershell gewandert. Ob dies ein Vorteil oder eher ein Rückschritt ist mag sich jeder selbst beantworten…

image

Unter Exchange 2007 werden die verschiedenen Stufen der Protokollierung über den Powershell Befehl Set-EventLogLevel gesetzt.

Dieser Befehl bekommt den Dienst und das LogLevel als Parameter.

z.B Set-EventLogLevel "MSExchangeSA\OAL Generator" -level 5

image

Hier eine Lister der gültigen Dienste für die die Protokollierung angepasst werden kann. [Quelle: Exchange Doku]

MSExchange ActiveSync\Requests

MSExchange ActiveSync\Configuration

MSExchange Antispam\General

MSExchange Assistants\Assistants

MSExchange Autodiscover\Core

MSExchange Autodiscover\Web

MSExchange Autodiscover\Provider

MSExchange Availability\Availability Service

MSExchange Availability\Availability Service General

MSExchange Availability\Availability Service Authentication

MSExchange Availability\Availability Service Authorization

MSExchange Cluster\Move

MSExchange Cluster\Upgrade

MSExchange Cluster\Action

MSExchange Common\General

MSExchange Common\Configuration

MSExchange Common\Logging

MSExchange Extensibility\Transport Address Book

MSExchange Extensibility\MExRuntime

MSExchange EdgeSync\Synchronization

MSExchange EdgeSync\Topology

MSExchange EdgeSync\SyncNow

MSExchange TransportService\TransportService

MSExchange Web Services\Core

MSExchange IMAP4\General

MSExchange Messaging Policies\Journaling

MSExchange Messaging Policies\AttachFilter

MSExchange Messaging Policies\AddressRewrite

MSExchange Messaging Policies\Rules

MSExchange Messaging Policies\Prelicensing

MSExchange Antispam Update\HygieneUpdate

MSExchange Management Application\Shell

MSExchange Management Application\Console

MSExchange OWA\FormsRegistry

MSExchange OWA\Core

MSExchange OWA\Configuration

MSExchange OWA\Themes

MSExchange OWA\SmallIcons

MSExchange OWA\Proxy

MSExchange OWA\Transcoding

MSExchange OWA\ADNotifications

MSExchange POP3\General

MSExchange Process Manager\ProcessManager

MSExchange Repl\Service

MSExchange Repl\Exchange VSS Writer

MSExchange Search Indexer\General

MSExchange Search Indexer\Configuration

MSExchange Store Driver\General

MSExchange System Attendant Mailbox\General

MSExchange Topology\Topology Discovery

MSExchange Unified Messaging\UMWorkerProcess

MSExchange Unified Messaging\UMCore

MSExchange Unified Messaging\UMManagement

MSExchange Unified Messaging\UMService

MSExchange Unified Messaging\UMClientAccess

MSExchange Unified Messaging\UMCallData

MSExchange ADAccess\General

MSExchange ADAccess\Cache

MSExchange ADAccess\Topology

MSExchange ADAccess\Configuration

MSExchange ADAccess\LDAP

MSExchange ADAccess\Validation

MSExchange ADAccess\Recipient Update Service

MSExchange ADAccess\Site Update

MSExchangeAL\Ldap Operations

MSExchangeAL\Service Control

MSExchangeAL\Attribute Mapping

MSExchangeAL\Account Management

MSExchangeAL\Address List Synchronization

MSExchangeIS\9000 Private\Transport General

MSExchangeIS\9000 Private\General

MSExchangeIS\9000 Private\Transport Sending

MSExchangeIS\9000 Private\Transport Delivering

MSExchangeIS\9000 Private\Transfer Into Gateway

MSExchangeIS\9000 Private\Transfer Out Of Gateway

MSExchangeIS\9000 Private\MTA Connections

MSExchangeIS\9000 Private\Logons

MSExchangeIS\9000 Private\Access Control

MSExchangeIS\9000 Private\Send On Behalf Of

MSExchangeIS\9000 Private\Send As

MSExchangeIS\9000 Private\Rules

MSExchangeIS\9000 Private\Storage Limits

MSExchangeIS\9000 Private\Background Cleanup

MSExchangeIS\9000 Private\DS Synchronization

MSExchangeIS\9000 Private\Views

MSExchangeIS\9000 Private\Download

MSExchangeIS\9000 Private\Local Replication

MSExchangeIS\9001 Public\Transport General

MSExchangeIS\9001 Public\General

MSExchangeIS\9001 Public\Replication DS Updates

MSExchangeIS\9001 Public\Replication Incoming Messages

MSExchangeIS\9001 Public\Replication Outgoing Messages

MSExchangeIS\9001 Public\Replication NDRs

MSExchangeIS\9001 Public\Transport Sending

MSExchangeIS\9001 Public\Transport Delivering

MSExchangeIS\9001 Public\MTA Connections

MSExchangeIS\9001 Public\Logons

MSExchangeIS\9001 Public\Access Control

MSExchangeIS\9001 Public\Send On Behalf Of

MSExchangeIS\9001 Public\Send As

MSExchangeIS\9001 Public\Rules

MSExchangeIS\9001 Public\Storage Limits

MSExchangeIS\9001 Public\Replication Site Folders

MSExchangeIS\9001 Public\Replication Expiry

MSExchangeIS\9001 Public\Replication Conflicts

MSExchangeIS\9001 Public\Replication Backfill

MSExchangeIS\9001 Public\Background Cleanup

MSExchangeIS\9001 Public\Replication Errors

MSExchangeIS\9001 Public\DS Synchronization

MSExchangeIS\9001 Public\Views

MSExchangeIS\9001 Public\Replication General

MSExchangeIS\9001 Public\Download

MSExchangeIS\9001 Public\Local Replication

MSExchangeIS\9002 System\Recovery

MSExchangeIS\9002 System\General

MSExchangeIS\9002 System\Connections

MSExchangeIS\9002 System\Table Cache

MSExchangeIS\9002 System\Content Engine

MSExchangeIS\9002 System\Performance Monitor

MSExchangeIS\9002 System\Move Mailbox

MSExchangeIS\9002 System\Download

MSExchangeIS\9002 System\Virus Scanning

MSExchangeIS\9002 System\Exchange Writer

MSExchangeIS\9002 System\Backup Restore

MSExchangeIS\9002 System\Client Monitoring

MSExchangeIS\9002 System\Event History

MSExchangeIS\9002 System\Database Storage Engine

MSExchangeMailboxAssistants\Service

MSExchangeMailboxAssistants\OOF Assistant

MSExchangeMailboxAssistants\OOF Library

MSExchangeMailboxAssistants\Resource Booking Attendant

MSExchangeMailboxAssistants\Email_Lifecycle_Assistant

MSExchangeMailSubmission\General

MSExchangeMU\General

MSExchangeSA\Clean Mailbox

MSExchangeSA\NSPI Proxy

MSExchangeSA\RFR Interface

MSExchangeSA\OAL Generator

MSExchangeSA\Proxy Generation

MSExchangeSA\RPC Calls

MSExchangeSA\RPC-HTTP Management

MSExchangeTransport\SmtpReceive

MSExchangeTransport\SmtpSend

MSExchangeTransport\DSN

MSExchangeTransport\Routing

MSExchangeTransport\Logging

MSExchangeTransport\Components

MSExchangeTransport\RemoteDelivery

MSExchangeTransport\Pickup

MSExchangeTransport\Categorizer

MSExchangeTransport\PoisonMessage

MSExchangeTransport\MessageSecurity

MSExchangeTransport\TransportService

MSExchangeTransport\Exch50

MSExchangeTransport\Process

MSExchangeTransport\ResourceManager

MSExchangeTransport\Configuration

MSExchangeTransport\Storage

MSExchangeTransport\Agents

MSExchangeFDS\General

MSExchangeFDS\FileReplication

MSExchange ADAccess\Topology

MSExchange ADAccess\Validation