The administration and maintenance of Microsoft Exchange Server to ensure secure, reliable, and efficient email and collaboration services across an organization.
In Exchange Server 2019, this behavior is expected in CU14.
The Exchange admin center can be used to manage certificates only in Exchange Server 2019 CU15 and later. For Exchange Server 2019 CU12 to CU14, the supported method is Exchange Management Shell.
Also, in Exchange 2016 and Exchange 2019, the RequestFile parameter is not available for New-ExchangeCertificate. The supported approach is:
- Generate the request into a variable:
$txtrequest = New-ExchangeCertificate -GenerateRequest -SubjectName "C=US,CN=mail.contoso.com" -DomainName autodiscover.contoso.com,mail.contoso.com
- Write that variable to a request file:
[System.IO.File]::WriteAllBytes('C:\Certs\certrequest.req', [System.Text.Encoding]::Unicode.GetBytes($txtrequest))
- Send the resulting
.reqfile to the CA.
Important checks for the current scenario:
- Confirm
$txtrequestactually contains data before writing the file. - Confirm
C:\Certsalready exists. The folder path must already exist before writing the request file. - The
SubjectNamemust include at leastCN=<HostNameOrFQDN>. IncludingC=<CountryOrRegion>is recommended, because otherwise certificate renewal might fail. - If a DER-encoded request is required by the CA, use
-BinaryEncodedand write$binrequest.FileDatainstead.
Example for DER-encoded output:
$binrequest = New-ExchangeCertificate -GenerateRequest -BinaryEncoded -SubjectName "C=US,CN=mail.contoso.com" -DomainName autodiscover.contoso.com,mail.contoso.com
[System.IO.File]::WriteAllBytes('C:\Certs\certrequest.pfx', $binrequest.FileData)
If a pending request already exists and the original request file is missing, the pending certificate request can be exported and resubmitted to the CA:
$txtcert = Export-ExchangeCertificate -Thumbprint <Thumbprint>
[System.IO.File]::WriteAllBytes('C:\Certs\certrequest.req', [System.Text.Encoding]::Unicode.GetBytes($txtcert))
That export works for a pending certificate request, but it cannot be imported on another server.
References: