Exchange 2019: Comprehensive white paper on certificates

Originally I had given up the plan to write another white paper on the subject of "Exchange and certificates". However, there still seem to be very frequent problems with the configuration of certificates in connection with Exchange servers. There are already a few articles and scripts here, so now there will be a comprehensive whitepaper on the subject of certificates.

The white paper "Certificates for Exchange Server 2019" is aimed at all admins who are still having problems configuring SSL certificates for Exchange Server. I have also tried to explain the topic of encryption and certificates as simply as possible. This resulted in over 70 pages on this topic, so here is a small excerpt from the table of contents:

  • Certificates: A simple overview of how they work
    • Private and public key
  • Overview: How HTTPS encryption works
    • Asymmetric and symmetric encryption (simple)
  • Certification bodies
    • What is a certification body?
    • Public CA
    • Own CA / PKI
    • Advantages and disadvantages
  • Let's Encrypt
    • Automatic certificates for Exchange Server
  • File formats for certificates
    • What formats are available
    • Conversion between the formats
  • Overview: Certificates and Exchange Server 2019
    • Where does Exchange use certificates
    • Dependencies
  • Exchange 2019 sample configurations for your own PKI / public CA and Let's Encrypt
  • Special features such as SSL Offloading and Perfect Forward Secrency
  • Helpful tools and links

Exchange 2019: Comprehensive white paper on certificates

The white paper is also largely valid for Exchange 2016 and Exchange 2013. The white paper does not deal with the UM role, which is no longer included in Exchange 2019. If the UM role is not used, the white paper can also be used for Exchange 2013 and Exchange 2016.

Questions, improvements, criticism and suggestions regarding this whitepaper are welcome via the contact form. A small donation is also welcome:

The white paper is available in PDF format and can be downloaded here free of charge:

So far this whitepaper is only available as a PDF, if there is a need for an eBook Reader compatible version, please let me know.

16 thoughts on “Exchange 2019: Umfangreiches Whitepaper zu Zertifikaten”

  1. First of all, amazing Whitepaper! really good and useful.
    I do have a question: what do you suggest if we have more than one domain in Exchange Server? let say 10 Domains! what would be the best way) what is the best practice? Multi-Domain Certificate for each domain (mail.domainone.com, autodiscover.domainone.com) and then what will happen with the OWA and how we can define a certificate for each domain foe each service like imap?

    Greetings

    Reply
  2. Hallo Frank,
    leider ist der Download Deines Zertifikate-Whitepapers momentan nicht möglich.
    Man bekommt stattdessen einen „WordPress-Fehler auf der Website“.
    Wäre toll wenn Du den Download wieder ermöglichen könntest.
    Ich hab die Hoffnung, dass das Script mir bei meinem Problem hilft :-)
    Danke.

    Reply
  3. Hallo Frank

    Vielen Dank für das super Dokument das sehr viel toll erklärt.
    Sollte das Script zum Ermitteln der Hostnamen für das Zertifikat auch auf einem Exchange 2013 oder 2016 funktionieren ?
    Ich habe es auf unserem EX 2013 versucht und da bekomme ich diverse Scriptfehler.
    Ich habe versucht die Fehler zu beheben aber hab es nicht hingekriegt. Bei Get-ClientAccessService muss es bei EX 2013 zb Get-ClientAccessServer heissen dann läuft das Script weiter.
    Aber ich habe dann dauernd noch Fehler „unexpected token „……“ in statement und die kriege ich einfach nicht weg.
    Wäre super wenn Du mir da helfen könntest, da wären sicher auch andere sehr dankbar für eine Version die auf EX2013 / 2016 laufen würde.

    t C:\Scripts\get-cert-entries.ps1:10 char:56

    + $AutodiscoverFQDN = ((Get-ClientAccessService -Identity

    + ~

    Missing closing ‚)‘ in expression.

    At C:\Scripts\get-cert-entries.ps1:11 char:1

    + $ExchangeServer).AutoDiscoverServiceInternalUri.Host).ToLower()

    + ~~~~~~~~~~~~~~~

    Unexpected token ‚$ExchangeServer‘ in expression or statement.

    At C:\Scripts\get-cert-entries.ps1:9 char:5

    + try {

    + ~

    Missing closing ‚}‘ in statement block.

    At C:\Scripts\get-cert-entries.ps1:11 char:16

    + $ExchangeServer).AutoDiscoverServiceInternalUri.Host).ToLower()

    + ~

    The Try statement is missing its Catch or Finally block.

    At C:\Scripts\get-cert-entries.ps1:11 char:16

    + $ExchangeServer).AutoDiscoverServiceInternalUri.Host).ToLower()

    + ~

    Unexpected token ‚)‘ in expression or statement.

    At C:\Scripts\get-cert-entries.ps1:11 char:53

    + $ExchangeServer).AutoDiscoverServiceInternalUri.Host).ToLower()

    + ~

    Unexpected token ‚)‘ in expression or statement.

    At C:\Scripts\get-cert-entries.ps1:11 char:63

    + $ExchangeServer).AutoDiscoverServiceInternalUri.Host).ToLower()

    + ~

    An expression was expected after ‚(‚.

    At C:\Scripts\get-cert-entries.ps1:13 char:1

    + }

    + ~

    Unexpected token ‚}‘ in expression or statement.

    At C:\Scripts\get-cert-entries.ps1:18 char:43

    + $OAExtFQDN = ((Get-OutlookAnywhere -Server

    + ~

    Missing closing ‚)‘ in expression.

    At C:\Scripts\get-cert-entries.ps1:19 char:1

    + $ExchangeServer).ExternalHostname.Hostnamestring).ToLower()

    + ~~~~~~~~~~~~~~~

    Unexpected token ‚$ExchangeServer‘ in expression or statement.

    Not all parse errors were reported. Correct the reported errors and try again.

    + CategoryInfo : ParserError: (:) [], ParseException

    + FullyQualifiedErrorId : MissingEndParenthesisInExpression

    Reply
  4. Hallo Frank
    Wie die erste Version sehr gut und ausführlich. Gratuliere! Eine revocation List habe ich in keinem CERT gefunden. Frage mich, ob ein Hinweis darauf etwas bringt. Der Hinweis „Wichtig: Der IIS Manager wird nicht verwendet um die Zertifikate für einen Exchange Server zu konfigurieren.“ ist für mich unverständlich. Als CERT bindings im Exchange kann man SMTP, POP und IMAP anklicken und der bindet dann das CERT auf die. IIS kann individuell konfiguriert werden. Für Let’s Encrypt-Leute wäre vielleicht eine Fussnote auf https://www.abetterinternet.org/documents/letsencryptCCS2019.pdf noch nützlich und bei den Test könnten M$-Leute einen Hinweis auf deren (Remote) Connectivity Analyzer brauchen, der ActiveSync, Inbound etc. testet. Bei Name Server mit IPv6 Adressen scheint er allerdings zu versagen. Das sind nur ziemlich unwichtige Vorschäge im Sinne einer konstruktiven Antwort zu einem Dokument, das viel Arbeit gegeben hat.
    Mit Gruss Marcel

    Reply
  5. Hallo,

    sehr schönes Dokument.
    Das Thema CRL (Certificate Revocation List) habe ich beim überfliegen nicht gesehen.
    Dies macht bezüglich Zugriff und Responstime gelegentlich Probleme, wenn die interne CA keine gültige CRL bereit stellt (Besonders bei offline CAs :-( ).

    Für Firefox können Zertifikate per GPO vom System importiert werden, so daß die interne CA im FF akzeptiert wird.

    Grüße

    Erik

    Reply
  6. Ja, eine umfangreich Arbeit, welche die meisten Schritte, Konfigurationen und Einzelheiten erläutert. Zwei kleine Dinge sind mir aufgefallen: S. 68 „Es ist also nicht nötig, für jeden Exchange Server innerhalb der Organisation ein eigenes Zertifikat auszustellen oder zu kaufen.“ Wenn die SAN’s der einzelnen Exchange Server in den CERT’s enthalten sind, nicht. Und PFS heisst Perfect Forward Secrecy. Gruss Marcel

    Reply
    • Hallo Marcel,
      die Namen der einzelnen Exchange Server müssen nicht als SAN auf dem Zertifikat vorhanden sein, solange sich die Exchange Server den gleichen Namensraum teilen. Hast du beispielsweise 10 Exchange Server innerhalb der Organisation, können alle Exchange Server das gleiche Zertifikat nutzen (Es kommt hier natürlich ein bisschen auf die Konfiguration an).
      Ist PFS irgendwo falsch geschrieben?
      Vielen Dank für deinen Hinweis, ich denke das Thema „Mehrere Exchange Server“ werde ich noch etwas genauer beschreiben.

      Beste Grüße,
      Frank

      Reply

Leave a Comment