aethercert
Dokumentation

Exchange Server: SSL-Zertifikat erneuern und zuweisen

Exchange-Zertifikat erneuern: PFX mit Import-ExchangeCertificate importieren, IIS, SMTP, POP und IMAP zuweisen, Connectoren anpassen und jedes Protokoll prüfen.

Exchange Server hat keine einzelne, allgemeine TLS-Bindung. IIS schützt die HTTP-Clientdienste, der Transportdienst wählt Zertifikate für SMTP und STARTTLS aus, und POP und IMAP haben eigene Protokolleinstellungen. Ein sicherer Zertifikatstausch prüft deshalb jeden Dienst einzeln, bevor das alte Zertifikat entfernt wird.

Die Anleitung gilt für die unterstützten lokalen Versionen Exchange Server 2016, 2019 und Subscription Edition. Führen Sie sie auf jedem Exchange-Server aus, der das jeweilige Protokoll bedient.

Voraussetzungen

  • Verwenden Sie die Exchange-Verwaltungsshell mit den nötigen Client-Access-Rechten.
  • Besorgen Sie eine PFX-Datei mit privatem Schlüssel und vollständiger Zertifikatskette. Die SANs müssen die HTTP-Namespaces sowie alle SMTP-, POP- und IMAP-FQDNs abdecken, die das Zertifikat verwenden sollen.
  • Notieren Sie den alten Fingerabdruck (Thumbprint), die Dienstzuweisungen, die TlsCertificateName-Werte der Empfangs- und Sendeconnectoren, die X509-Namen für POP/IMAP und die Mitglieder im Load-Balancer-Pool.
  • Prüfen Sie, ob POP/IMAP überhaupt aktiviert sind, bevor Sie einen Neustart einplanen - in einer Standardinstallation sind beide deaktiviert.
  • In einer Exchange-Hybridbereitstellung notieren Sie das im Hybrid Configuration Wizard gewählte Zertifikat und planen die Anpassung der Hybrid-Connectoren ein.

Wie Exchange Zertifikate verwendet

DienstWas die Zuweisung betrifft
IISOutlook im Web, EAC, EWS, ActiveSync, Autodiscover, OAB, MAPI/HTTP, Outlook Anywhere und Remote-PowerShell auf der Default Web Site.
SMTPSTARTTLS, Mutual TLS und Transportverbindungen. Empfangs- und Sendeconnectoren können ein Zertifikat über Aussteller und Antragsteller in TlsCertificateName festlegen.
POPPOP3 mit TLS. Der angekündigte FQDN muss zum Zertifikat passen; Microsoft rät davon ab, POP ein Wildcard-Zertifikat zuzuweisen.
IMAPIMAP4 mit TLS, mit derselben FQDN-Anforderung; auch hier rät Microsoft von Wildcard-Zertifikaten ab.

Das selbstsignierte Standard-SMTP-Zertifikat von Exchange schützt auch den internen Transport. Wenn Sie ein öffentliches Zertifikat für SMTP aktivieren, fragt Exchange eventuell, ob die Standardzuweisung ersetzt werden soll. Beantworten Sie das nicht automatisch mit Ja: öffentliches bzw. Hybrid-SMTP und der interne Exchange-Transport sind zwei verschiedene Dinge.

Zertifikat Schritt für Schritt austauschen

Einzelserver, kein Hybrid, kein POP/IMAP: Sie brauchen nur die Schritte 1-4 und 8. Schritt 5 gilt nur, wenn ein Connector ein Zertifikat festlegt, Schritt 6 nur bei aktivem POP oder IMAP, Schritt 7 nur nach Connector-Änderungen.

  1. Bestandsaufnahme der aktuellen Konfiguration:

    Get-ExchangeCertificate |
      Format-List FriendlyName,Subject,Issuer,CertificateDomains,Thumbprint,Services,NotAfter
    Get-ReceiveConnector | Format-List Identity,Fqdn,TlsCertificateName
    Get-SendConnector | Format-List Identity,Fqdn,TlsCertificateName
    Get-PopSettings | Format-List X509CertificateName
    Get-ImapSettings | Format-List X509CertificateName
  2. PFX importieren. Aktuelle Exchange-PowerShell-Versionen erwarten die Datei als Byte-Array:

    $password = Read-Host "PFX password" -AsSecureString
    $imported = Import-ExchangeCertificate `
      -FileData ([System.IO.File]::ReadAllBytes("C:\secure\exchange.pfx")) `
      -Password $password `
      -PrivateKeyExportable $false
    $thumbprint = $imported.Thumbprint

    Im Exchange Admin Center geht der Import auch unter Server > Zertifikate, die Shell zeigt den resultierenden Fingerabdruck aber direkt an.

  3. Nur die Dienste zuweisen, die auf diesem Server genutzt werden:

    Enable-ExchangeCertificate -Thumbprint $thumbprint -Services IIS,SMTP,POP,IMAP

    Dienstzuweisungen lassen sich einem Zertifikat hinzufügen, aber nicht entziehen. Einen Dienst zu verschieben heißt also: dem neuen Zertifikat zuweisen und das alte behalten oder später löschen.

  4. Beim Aktivieren von SMTP fragt Exchange, ob das vorhandene Standard-SMTP-Zertifikat überschrieben werden soll. Antworten Sie in den meisten Umgebungen mit Nein (N): Das selbstsignierte Standardzertifikat schützt weiterhin den internen Transport zwischen den Exchange-Servern, und das öffentliche Zertifikat wird trotzdem für externes STARTTLS verwendet. Antworten Sie nur mit Ja, wenn das öffentliche Zertifikat bewusst auch den internen Transport übernehmen soll. Ergebnis prüfen:

    Get-ExchangeCertificate -Thumbprint $thumbprint |
      Format-List Thumbprint,Services,Subject,CertificateDomains
  5. Connectoren anpassen, die ein Zertifikat über Aussteller und Antragsteller festlegen. Exchange verwendet in TlsCertificateName nicht den Fingerabdruck:

    $cert = Get-ExchangeCertificate -Thumbprint $thumbprint
    $tlsName = "<I>$($cert.Issuer)<S>$($cert.Subject)"
    Set-ReceiveConnector -Identity "<server>\<receive-connector>" -TlsCertificateName $tlsName
    Set-SendConnector -Identity "<send-connector>" -TlsCertificateName $tlsName

    Hat das erneuerte Zertifikat denselben Aussteller und Antragsteller, wählt Exchange unter Umständen automatisch das neueste gültige passende Zertifikat. Prüfen Sie trotzdem jeden Connector. Für den Hybrid-Mailfluss empfiehlt Microsoft, den Hybrid Configuration Wizard erneut auszuführen, wenn sich das Zertifikat ändert; die aktuelle Erneuerungsanleitung startet nach Connector-Änderungen außerdem MSExchangeTransport neu.

  6. Wenn POP oder IMAP genutzt werden, muss der konfigurierte FQDN als SAN enthalten sein:

    Set-PopSettings -X509CertificateName pop.example.com
    Set-ImapSettings -X509CertificateName imap.example.com
    Restart-Service MSExchangePOP3,MSExchangePOP3BE
    Restart-Service MSExchangeIMAP4,MSExchangeIMAP4BE

    Starten Sie nur die Protokollpaare neu, die aktiviert sind und geändert wurden. Der Frontend-Dienst leitet an den Backend-Dienst weiter, deshalb gehören beide dazu.

  7. Bei Änderungen an SMTP-Connectoren den Transport im Wartungsfenster neu starten:

    Restart-Service MSExchangeTransport
    Restart-Service MSExchangeFrontEndTransport

    Gehen Sie Server für Server vor, damit die übrigen Transportknoten weiter Mail zustellen.

  8. Für IIS nicht pauschal iisreset ausführen. Die Zertifikatszuweisung aktualisiert die IIS-Bindung selbst. Laut Microsoft kann ein Neustart nötig sein, wenn Exchange für das Authentifizierungs-Cookie von Outlook im Web weiter das alte Zertifikat verwendet, und bei Layer-4-Load-Balancing wird ein IIS-Neustart empfohlen. Trifft das zu, nehmen Sie den Knoten zuerst aus dem Pool und führen dann iisreset aus; andernfalls prüfen Sie neue TLS-Handshakes, bevor Sie IIS komplett unterbrechen.

Produktspezifische Hinweise

Exchange-Zertifikate sind lokal pro Server. Eine Database Availability Group (DAG) repliziert weder die PFX-Datei noch die Dienstzuweisung. Aktualisieren und testen Sie einen Client-Access- bzw. Transportknoten nach dem anderen.

Die ECC-Unterstützung für Exchange 2016/2019 wurde mit den Updates vom April und November 2024 erweitert und ist standardmäßig hinter der dokumentierten Einstellung deaktiviert. Federation-Trust- und Exchange-OAuth-Zertifikate müssen weiterhin RSA sein, und ECC wird mit der anspruchsbasierten Authentifizierung über AD FS nicht unterstützt. Führen Sie ECC nicht im Rahmen einer Routine-Erneuerung ein, ohne die vollständig gepatchte Version und jeden Dienst geprüft zu haben.

Ein Edge-Transport-Server mit Edge-Abonnement hat zusätzliche Anforderungen: Microsoft beschreibt, dass das alte CA-Zertifikat entfernt und das Edge-Abonnement neu erstellt werden muss. Planen Sie das als eigene Änderung.

Neues Zertifikat prüfen

Erst die Zuweisung prüfen, dann den Netzwerk-Endpunkt:

Get-ExchangeCertificate -Thumbprint $thumbprint |
  Format-List Subject,Issuer,CertificateDomains,Thumbprint,Services,NotAfter
Test-ServiceHealth   # prüft, ob die nötigen Dienste laufen - nicht das Zertifikat
openssl s_client -connect mail.example.com:443 -servername mail.example.com </dev/null
openssl s_client -starttls smtp -connect mail.example.com:25 </dev/null
openssl s_client -starttls smtp -connect mail.example.com:587 </dev/null
openssl s_client -starttls imap -connect imap.example.com:143 </dev/null
openssl s_client -connect imap.example.com:993 -servername imap.example.com </dev/null
openssl s_client -starttls pop3 -connect pop.example.com:110 </dev/null
openssl s_client -connect pop.example.com:995 -servername pop.example.com </dev/null

Führen Sie nur die Zeilen für genutzte Protokolle aus; jede muss das neue Zertifikat zeigen. Testen Sie außerdem Autodiscover, Outlook im Web und den Hybrid-Mailfluss. Scheitert nach der Änderung die Anmeldung an Outlook im Web, ist das der Fall aus Schritt 8 - führen Sie auf dem aus dem Pool genommenen Server iisreset aus. Für eine umfassendere Prüfung nach der Änderung führen Sie den Microsoft Exchange Health Checker gemäß seiner aktuellen Anleitung aus.

Rollback

Weisen Sie den betroffenen Diensten den alten Fingerabdruck wieder zu, stellen Sie die TlsCertificateName-Werte der Connectoren wieder her, starten Sie nur die betroffenen Protokolldienste neu und nehmen Sie den Knoten nach erfolgreichen Netzwerktests wieder in den Pool. Weil sich Zuweisungen nicht entfernen lassen, ist ein Rollback nur möglich, solange das alte Zertifikat noch installiert und gültig ist.

Altes Zertifikat entfernen

Entfernen Sie das alte Zertifikat, sobald Get-ExchangeCertificate die Dienste auf dem neuen zeigt, kein Connector mehr auf das alte verweist, jeder Protokolltest bestanden ist und - bei Hybrid - der Hybrid Configuration Wizard mit dem neuen Zertifikat erneut ausgeführt wurde:

Remove-ExchangeCertificate -Thumbprint <alter-fingerabdruck>

Häufige Probleme

  • Die PFX-Datei enthält keinen privaten Schlüssel oder wurde auf einem anderen Exchange-Server importiert.
  • IIS funktioniert, aber SMTP wählt über den alten Aussteller/Antragsteller eines Connectors noch das alte Zertifikat.
  • Das öffentliche SMTP-Zertifikat hat versehentlich das interne Standardzertifikat ersetzt.
  • POP/IMAP nutzen einen FQDN, der nicht im SAN steht, oder ein Frontend/Backend-Paar wurde nicht neu gestartet.
  • Das alte Zertifikat wird gelöscht, bevor Hybrid-, Edge-, Empfangs- und Sendeconnector-Abhängigkeiten geprüft wurden.
  • Nur ein Knoten hinter dem Load Balancer wurde aktualisiert.

Zertifikatstausch mit aethercert automatisieren

Das aethercert-Deployment-Ziel für Exchange führt den Zertifikatsimport von Exchange aus und weist auf dem lokalen Server die gewählten Dienste IIS, SMTP, POP und IMAP zu. Connector-spezifische TlsCertificateName-Werte, die Hybrid-Konfiguration und umgebungsspezifische Wartungsentscheidungen müssen Sie weiterhin selbst prüfen, wo sie zutreffen.

Unter Deployment-Ziele finden Sie die Felder dieser Vorlage, die Voraussetzungen auf dem Host und den Stand der Verifizierung.

Quellen

Auf dieser Seite