Exchange 2007 / 2010 / 2013 / 2016 / 2019 virtuelle Verzeichnisse / Zertifikate / SplitDNS

Split DNS für die virtuellen Verzeichnisse am Exchange Server 2007 / 2010 / 2013 / 2016 / 2019 einrichten.

Zur Best-Practice Einrichtung eines Exchange Server ab der Version 2007 gehört SplitDNS. In vielen Konstellationen ist SplitDNS ebenfalls die einzige Möglichkeit ein Zertifikat einer öffentlichen Zertifizierungsstelle ausgstellt zu bekommen, da seit Oktober 2016 nur noch öffentliche TLDs signiert werden. Ebenso werden Zertifikate nicht mehr auf Hostnamen ausgestellt sondern nur noch auf FQDNs (Fully-Qualified Host Name).

Als erstes im internen DNS Manager (dnsmgmt.msc) zwei neue Host-Zonen anlegen:

  • autodiscover.domain.tld
  • owa.domain.tld (oder mail.domain.tld / outlook.domain.tld / whatever.domain.tld)
Exchange_Zertifikate_SplitDNS01
Exchange_Zertifikate_SplitDNS01

Den Zonennamen entsprechend der öffentlichen Domain anpassen.

Exchange_Zertifikate_SplitDNS02
Exchange_Zertifikate_SplitDNS02

Im Punkt „Dynamisches Update“ sollte die Option „Dynamische Updates nicht zulassen“ gewählt werden.

Exchange_Zertifikate_SplitDNS03
Exchange_Zertifikate_SplitDNS03

In den beiden neu angelegten Zonen jeweils einen neuen Host erstellen.

Exchange_Zertifikate_SplitDNS04
Exchange_Zertifikate_SplitDNS04

Den Namen zwingend leer lassen, da wir eine Host-Zone erstellen und als IP Adresse die IP des Exchangeservers bzw. der VIP des Loadbalancers eintragen. Wer sich die Klickerei sparen möchte, kann diese Aufgabe auch mittels dnscmd.exe am DNS Server / Domain Controller erledigen:

# Erstellen der beiden Zonen
dnscmd . /zoneadd outlook.<domain.tld> /dsprimary
dnscmd . /zoneadd autodiscover.<domain.tld> /dsprimary

# Erstellen der Records
dnscmd . /recordadd outlook.<domain.tld> . A <IP des Exchanges>
dnscmd . /recordadd autodiscover.<domain.tld> . A <IP des Exchanges>

Ein „ping owa.<domain.tld>“ sollte jetzt in die IP Adresse des Exchange aufgelöst werden.

Nachdem die Konfiguration von SplitDNS erledigt ist, sollten als nächstes diese beiden Host-Einträge (owa.<domain.tld> und autodiscover<domain.tld>) beim öffentlichen DNS-Anbieter angelegt werden und auf die öffentliche IP zeigen. Sowie an der Firewall ein Port-Forwarding von (tcp 80 (http) sowie) tcp 443 (https) auf den Exchange Server erfolgen. Sollte port 80 weitergeleitet werden, empfiehlt es sich diesen automatisch auf https umzueleiten. Eine praktische Anleitung dazu findet sich unter: http://robertwilleswelt.wordpress.com/2011/07/08/owa-verkurzung-der-url-auf-anderem-weg/

Im nächsten Schritt am Exchange Server in der Exchange Management Shell einen Zertifikatsrequest erstellen und bei der entsprechenden Zertifizierungstelle einrichen:

Set-Content -Path "C:\cert.req" -Value (New-ExchangeCertificate -GenerateRequest -KeySize 2048 -SubjectName "c=<Land>, s=<Bundesland>, l=<Ort>, o=<Antragsteller>, cn=owa.<domain.tld>" -domainName owa.<domain.tld>, autodiscover.<domain.tld>; -PrivateKeyExportable $True)

Danach den Zertifikatsrequest nach Möglichkeit bei einer öffentlichen Zertifizierungsstelle abschließen und das Zertifikat importieren:

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:\cert.cer -Encoding byte -ReadCount 0))

Im nächsten Step werden die internen und externen URLs der virtuellen Verzeichnisse angepasst.

Exchange 2007:

Get-OwaVirtualDirectory -Server <Exchange Server> | Set-OwaVirtualDirectory -InternalUrl 'https://owa.<domain.tld>/owa' -ExternalUrl 'https://owa.<domain.tld>/owa'
Get-OABVirtualDirectory -Server <Exchange Server> | Set-OABVirtualDirectory -InternalURL 'https://owa.<domain.tld>/OAB' -ExternalURL 'https://owa.<domain.tld>/OAB'
Get-ActiveSyncVirtualDirectory -Server <Exchange Server> | Set-ActiveSyncVirtualDirectory -InternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync' -ExternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync'
Get-WEbServicesVirtualDirectory -Server <Exchange Server> | Set-WEbServicesVirtualDirectory -InternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx' -ExternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx'
Get-ClientAccessServer -Identity <Exchange Server> | Set-ClientAccessServer -AutodiscoverServiceInternalUri https://owa.<domain.tld>/autodiscover/autodiscover.xml
Get-OutlookAnywhere -Server <Exchange Server> | Set-OutlookAnywhere -ExternalHostname owa.<domain.tld>

Exchange 2010:

Get-OwaVirtualDirectory -Server <Exchange Server> | Set-OwaVirtualDirectory -InternalUrl 'https://owa.<domain.tld>/owa' -ExternalUrl 'https://owa.<domain.tld>/owa'
Get-EcpVirtualDirectory -Server <Exchange Server> | Set-EcpVirtualDirectory -InternalUrl 'https://owa.<domain.tld>/ecp' -ExternalUrl 'https://owa.<domain.tld>/ecp'
Get-OABVirtualDirectory -Server <Exchange Server> | Set-OABVirtualDirectory -InternalURL 'https://owa.<domain.tld>/OAB' -ExternalURL 'https://owa.<domain.tld>/OAB'
Get-ActiveSyncVirtualDirectory -Server <Exchange Server> | Set-ActiveSyncVirtualDirectory -InternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync' -ExternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync'
Get-WEbServicesVirtualDirectory -Server <Exchange Server> | Set-WEbServicesVirtualDirectory -InternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx' -ExternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx'
Get-ClientAccessServer -Identity <Exchange Server> | Set-ClientAccessServer -AutodiscoverServiceInternalUri https://owa.<domain.tld>/autodiscover/autodiscover.xml
Get-OutlookAnywhere -Server <Exchange Server> | Set-OutlookAnywhere -ExternalHostname owa.<domain.tld>

Ab Exchange 2013 (2016 / 2019):

Get-OwaVirtualDirectory -Server <Exchange Server> | Set-OwaVirtualDirectory -InternalUrl 'https://owa.<domain.tld>/owa' -ExternalUrl 'https://owa.<domain.tld>/owa'
Get-EcpVirtualDirectory -Server <Exchange Server> | Set-EcpVirtualDirectory -InternalUrl 'https://owa.<domain.tld>/ecp' -ExternalUrl 'https://owa.<domain.tld>/ecp'
Get-OABVirtualDirectory -Server <Exchange Server> | Set-OABVirtualDirectory -InternalURL 'https://owa.<domain.tld>/OAB' -ExternalURL 'https://owa.<domain.tld>/OAB'
Get-ActiveSyncVirtualDirectory -Server <Exchange Server> | Set-ActiveSyncVirtualDirectory -InternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync' -ExternalURL 'https://owa.<domain.tld>/Microsoft-Server-ActiveSync'
Get-WEbServicesVirtualDirectory -Server <Exchange Server> | Set-WEbServicesVirtualDirectory -InternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx' -ExternalURL 'https://owa.<domain.tld>/EWS/Exchange.asmx'
Get-MapiVirtualDirectory -Server <Exchange Server> | Set-MapiVirtualDirectory -InternalURL 'https://owa.<domain.tld>/mapi' -ExternalURL 'https://owa.<domain.tld>/mapi'
Get-ClientAccessServer -Identity <Exchange Server> | Set-ClientAccessServer -AutodiscoverServiceInternalUri https://owa.<domain.tld>/autodiscover/autodiscover.xml
Get-OutlookAnywhere -Server <Exchange Server> | Set-OutlookAnywhere -InternalHostname owa.<domain.tld> -ExternalHostname owa.<domain.tld>

Neues Zertifikat an die Exchangedienste binden:

# Exchangezertifikate ausgeben, damit der Thumprint ermittelt werden kann
Get-ExchangeCertificate
 
# Neues Zertifikat aktivieren und an die Dienste binden
Enable-ExchangeCertificate -Thumbprint <THUMBPRINT> -Service IIS, IMAP, SMTP, POP

Beteilige dich an der Unterhaltung

3 Kommentare

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.