Website-Icon Frankys Web

Exchange 2016: SMTP Connector und Wildcard- / SAN-Zertifikate

Wer Exchange 2016 in Verbindung mit einem Wildcard Zertifikat benutzt, sollte auch die Empfangs- und Sendeconnectoren entsprechend konfigurieren. Auch bei SAN-Zertifikaten kann dies nötig sein.

Enthält das SAN-Zertifikat als “Common Name (Ausgestellt für)” den Domain Namen und nicht den entsprechenden Servernamen des Exchange Servers, kommt es zum Beispiel bei der Verschlüsslung der SMTP-Verbindung mittels STARTTLS zu Problemen. Hier einmal ein Beispiel des Mailclients Thunderbird der eine SMTP-Verbidnung via STARTTLS zu einem Exchange Server aufbauen möchte:

In diesem Fall wurde ein SAN-Zertifikat genutzt, welches als Common Name den Domain Namen (Bspw. frankysweb.de) eingetragen hat und nicht den Hostnamen (Bspw. mail.frankysweb.de). Die zusätzlichen Hostnamen wurden wie üblich als SAN-Attribute angegeben.

Bei Wildcard Zertifikaten stellt es sich ähnlich dar, hier ist normalerweise als Common Name und SAN-Attribut der entsprechende Wildcard Eintrag gesetzt (Bspw. *.frankysweb.de)

Um das Problem zu beheben, muss aber nicht das Zertifikat ausgetauscht werden, es genügt Sende- und Empfangsconnectcoren entsprechend zu konfigurieren.

Empfangs- und Sendeconnector konfigurieren

Zunächst muss der Thumbprint des Zertifikats ermittelt werden, dazu kann der folgende Befehl verwendet werden:

Get-ExchangeCertificate | where {$_.services -match "IIS"}

In diesem Fall wird das Zertifikat mit dem Thumbprint “2B7B52B5BB8A3F53E048F4D875A41DCDC71C3910” verwendet. Der Thumbprint wird verwendet um den TLS Zertifikatsnamen zu bilden. Dies geschieht über die folgenden Befehle:

$Cert = Get-ExchangeCertificate -Thumbprint 2B7B52B5BB8A3F53E048F4D875A41DCDC71C3910
$TLSCertificateName = "<i>$($Cert.Issuer)<s>$($Cert.Subject)"
$TLSCertificateName

Jetzt kann das Zertifikat den entsprechenden SMTP Frontend Connectoren zugewiesen werden, dazu müssen zunächst die Namen der Connectoren ermittelt werden:

Get-ReceiveConnector

Ausgewählt werden Connectoren, die den Port 25 und 587 enthalten. In diesem Fall also “Exchange\Default Frontend Exchange” und “Exchange\Client Frontend Exchange”. An diese beiden Connectoren kann nun das Zertifikat gebunden werden:

Set-ReceiveConnector "EXCHANGE\Default Frontend EXCHANGE" -TlsCertificateName $TLSCertificateName
set-ReceiveConnector "EXCHANGE\Client Frontend EXCHANGE" -TlsCertificateName $TLSCertificateName

Damit auch für ausgehende SMTP Verbindungen das Zertifikat genutzt wird, kann es auf dem gleichen Weg auch an den Sendeconnector gebunden werden:

Get-SendConnector
Get-SendConnector | Set-SendConnector -TlsCertificateName $TLSCertificateName

Ob STARTTLS funktioniert, lässt sich mittels der folgenden Webseite testen:

https://www.checktls.com/

Das Ergebnis wird dann entsprechend angezeigt:

Auch im E-Mail Header lässt sich prüfen ob TLS genutzt wurde, hier ein Beispiel für einen Received Header (version=TLS1_2)

Received: from EXCHANGE.frankysweb.de () by EXCHANGE.frankysweb.de
() with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1415.2; Sun, 11 Feb
2018 20:49:12 +0100

Die mobile Version verlassen