Website-Icon Frankys Web

Exchange Zertifikate per Shell anfordern und importieren

Seit dem CU12 für Exchange 2019 und dem CU23 für Exchange 2016 können Zertifikate nicht mehr einfach via Exchange Admin Center angefordert oder importiert werden. Hintergrund ist eine Änderung an den CMDLets „New-ExchangeCertificate“, „Import-ExchangeCertificate“ und „Export-ExchangeCertificate“, hier können nun keine UNC Pfade mehr verwendet werden. Im Exchange Admin Center gab es vor CU12 und CU23 die Möglichkeit direkt eine Zertifikatsanforderung zu erstellen und vorhandenes Zertifikat zu importieren oder zu exportieren. Dies ist nun nicht mehr direkt in Exchange Admin Center möglich:

Eine Zertifikatsanforderung lässt sich aber einfach per Exchange Management Shell erstellen, der folgende Befehl muss dazu nur an die eigene Umgebung angepasst werden (Das Hochkomma dient nur dem Zeilenumbruch zur besseren Lesbarkeit):

$CSR = New-ExchangeCertificate -Server "SERVERNAME" `
-GenerateRequest `
-FriendlyName "Exchange Zertifikat" `
-PrivateKeyExportable $true `
-SubjectName `
 "c=LÄNDERCODE, `
  s=BUNDESLAND, `
  l=STADT, `
  o=FIRMENNAME, `
  ou=ORGANISATIONSEINHEIT, `
  cn=ALLGEMEINER_NAME" `
-DomainName `
 outlook.frankysweblab.de, `
 autodiscover.frankysweblab.de `

$CSR

Der Befehl gibt euch die Zertifikatsanforderung (CSR) direkt auf der Shell aus:

Der CSR kann nun bei einer Zertifizierungsstelle eingereicht werden. Sobald das Zertifikat vorliegt, kann es mit dem folgenden Befehl importiert werden:

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

Nach dem Import des Zertifikats können noch die Exchange Dienste per Shell an das Zertifikat gebunden werden:

Enable-ExchangeCertificate -Thumbprint $ImportCert.Thumbprint -Services POP,IMAP,SMTP,IIS

Das Zuweisen der Exchange Dienste ist allerdings nach wie vor auch noch über das Exchange Admin Center möglich:

Alternativ lässt sich das Zertifikat oder auch ein Zertifikat inklusive des Privaten Schlüssels (PFX Datei) via MMC importieren:

Nach dem Import müssen die Exchange Dienste an das neue Zertifikate gebunden werden. Wie bereits erwähnt, ist dies per Exchange Admin Center möglich:

Der Export des Zertifikats inkl. des privaten Schlüssels ist nun auch nur noch via Exchange Management Shell möglich, hier der neue Befehl für den Export:

Get-ExchangeCertificate

$ExportCert = Export-ExchangeCertificate -Thumbprint 85AB0C0D042CA2A406A3C35DCB85FD2D99EC5B92 -BinaryEncoded -Password (convertto-securestring -string "PASSWORD" -asplaintext -force)
Set-Content -Path c:\Install\Cert.pfx -Value $ExportCert.FileData -Encoding byte

Der Befehl für den Import einer PFX Datei lautet wie folgt:

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:\Install\cert.pfx -Encoding byte -ReadCount 0)) -Password (convertto-securestring -string "PASSWORD" -asplaintext -force)
Die mobile Version verlassen