Zuweisung von Zertifikaten
Nach der Installation eines Exchange Servers sollten für einen sicheren Betrieb auch Zertifikate zugewiesen werden. Die Zuweisung der Zertifikate erfolgt an diversen Stellen und haben Einfluss darauf, ob die Kommunikation vollumfänglich verschlüsselt ist oder nicht. Die über das System bereitgestellten self-signed Zertifikate sind nicht unsicher, es wird ihnen aber auch nicht vertraut.
Exchange Server Verwendung von Zertifikaten
Der Exchange Server bzw. das OS stellen für den Betrieb einige Dienste bereit, die im Vorfeld bekannt sein sollten.
Dienste | Zweck (HTTPS-TLS) |
---|---|
IIS | Autodiscover |
IIS | Active Sync |
IIS | ECP Konsole |
IIS | Webdienste |
IIS | Offlineadressbuch |
IIS | Outlook Anywhere (RPC) |
IIS | OWA Konsole |
IIS | Outlook MAPI |
IMAP | TLS Anbindung der Clients via IMAP4 |
POP | TLS Anbindung der Clients via POP3 |
SMTP | TLS Verschlüsselung für externe SMTP Client und Serververbindungen |
SMTP | TLS Verschlüsselung für systemübergreifende Verbindungen (Exchange Server oder andere Messaging-Dienste) |
SMTP | TLS verschlüsselte Kommunikation zwischen den internen Exchange Servern |
UM | TLS Verschlüsselung für Clientverbindungen zum Back-End. |
UMCR | TLS Verschlüsselung für Clientverbindungen zum UM-Call-Router |
Zertifikate können teilweise über die ECP oder dem IIS zugewiesen werden, für den größten Teil jedoch ist die Exchange-Management-Shell zu benutzen.
Für die Zuweisung von Zertifikaten für Dienste, wie z.B. IIS, IMAP, POP oder UM kann die ECP eingesetzt werden. Wenn eingehende- oder ausgehende Konnektoren ein Zertifikat zugewiesen bekommen sollen, dann muss dafür die Exchange-Management-Shell eingesetzt werden. Für das Front- und Back-End des Exchange Servers ist der IIS zu öffnen. Natürlich geht auch alles über die Powershell.
Exchange Server Konnektor Zertifikat
Die Zuweisung eines Zertifikats für die Aktivierung einer verschlüsselten Verbindung sieht wie folgt aus: Der Issuer und der Subjectname des Zertifikats werden in zwei Variablen gespeichert, die nach der Bindung auszulesen sind,…
Bindung an die Konnektoren:
$Cert = Get-ExchangeCertificate -Thumbprint 555c75f8e439a0778fbf84eb6cbf9726d6da1da2
$TLSCertificateName = “<i>$($Cert.Issuer)<s>$($Cert.Subject)”
$TLSCertificateName
Set-ReceiveConnector “EX1\Client Frontend EX1” -TlsCertificateName $TLSCertificateName
Set-ReceiveConnector “EX1\Default Frontend EX1” -TlsCertificateName $TLSCertificateName
Set-ReceiveConnector “EX1\Anonym” -TlsCertificateName $TLSCertificateName
Set-ReceiveConnector “EX2\Client Frontend EX2” -TlsCertificateName $TLSCertificateName
Set-ReceiveConnector “EX2\Default Frontend EX2” -TlsCertificateName $TLSCertificateName
Set-ReceiveConnector “EX2\Anonym” -TlsCertificateName $TLSCertificateName
Get-SendConnector “Internet” | Set-SendConnector -TlsCertificateName $TLSCertificateName
aber woher weiß man später welches Zertifikat von den vielen gebunden ist, wenn man es selbst nicht umgesetzt hat. Die einzigen Informationen die man über die herkömmliche Abfrage erhält ist:
Keine Angabe von Zeit, Thumbprint oder ähnlichem, wie frustrierend!
Keine Sorge. Die Antwort findet man im Active Directory. Folgendes Property msExchServerInternalTLSCert hält diese Informationen vor.
Der Pfad über die Konfigurationspartition lautet in meinem Fall wie folgt:
CN=EX1,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=WindowsPapst,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=windowspapst,DC=de
Die ausgelesenen Informationen sind als Blob hinterlegt und können mit diesem Skript ausgelesen werden.