从 Exchange 服务器导出证书

可以从 Exchange 服务器导出证书作为备份,或在其他客户端、设备或服务器上导入证书。 可以在 Exchange 管理中心 (EAC) 或 Exchange 命令行管理程序中导出证书。 所生成的证书文件是受密码保护的二进制 PKCS #12 文件(其中包含证书的私钥),并适用于导入(安装)在其他服务器上。

注意

将从 EAC for Exchange Server 2016 CU23 和 Exchange Server 2019 CU12 中删除证书管理任务。 使用 Exchange 命令行管理程序过程从这些版本导出/导入证书。

在开始之前,您需要知道什么?

  • 估计完成时间:5 分钟。

  • 在 EAC 中,需要将证书文件导出到 UNC 路径 (\\<Server>\<Share>\\\<LocalServerName>\c$\) 。 在 Exchange 命令行管理程序中,可以指定本地路径。

  • 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell

  • 您必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 客户端和移动设备权限主题中的"客户端访问服务安全"条目。

  • 若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键

提示

是否有任何疑问? 请在 Exchange 论坛中寻求帮助。 请访问以下论坛:Exchange ServerExchange OnlineExchange Online Protection

使用 EAC 导出证书

  1. 打开 EAC 并导航到 “服务器>证书”。

  2. “选择服务器” 列表中,选择包含证书的 Exchange 服务器,单击“ 更多选项”图标,然后选择“ 导出 Exchange 证书”。

  3. 在打开的“导出 Exchange 证书”页面上,请输入以下信息:

    • 要导出到的文件:输入证书文件的 UNC 路径和文件名。 例如,\\FileServer01\Data\Fabrikam.pfx

    • 密码:使用私钥导出证书时,需要指定密码。 使用私钥导出证书可以在其他服务器上导入证书。

    完成后,单击“确定”

使用 Exchange 命令行管理程序导出证书

若要导出可以导入到其他客户端或服务器上的二进制证书文件,请使用以下语法:

$cert = Export-ExchangeCertificate -Thumbprint <Thumbprint> -BinaryEncoded -Password (Read-Host "Enter password" -AsSecureString) [-Server <ServerIdentity>]

[System.IO.File]::WriteAllBytes('<FilePathOrUNCPath>\<FileName>.pfx', $cert.FileData)

此示例使用以下设置将证书从本地 Exchange 服务器导出到文件中:

  • 具有指纹值的 5113ae0233a72fccb75b1d0198628675333d010e 证书将导出到运行命令的同一服务器上的文件 C:\Data\Fabrikam.pfx
  • 导出的证书文件进行 DER(而不是 Base64)编码。
  • 系统会提示输入密码。
$cert = Export-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -BinaryEncoded -Password (Read-Host "Enter password" -AsSecureString)

[System.IO.File]::WriteAllBytes('C:\Data\Fabrikam.pfx', $cert.FileData)

若要导出挂起的证书请求 (也称为证书签名请求或 CSR) ,请使用以下语法:

$txtcert = Export-ExchangeCertificate -Thumbprint <Thumbprint> [-Server <ServerName>]

[System.IO.File]::WriteAllBytes('<FilePathOrUNCPath>\<FileName>.req', [System.Text.Encoding]::Unicode.GetBytes($txtcert))

本示例将挂起的证书请求从本地 Exchange 服务器导出到具有以下设置的文件:

  • 具有指纹值的 72570529B260E556349F3403F5CF5819D19B3B58 证书将导出到 文件 \\FileServer01\Data\Fabrikam.req
  • 导出的证书文件是 Base64 编码的。
$txtcert = Export-ExchangeCertificate -Thumbprint 72570529B260E556349F3403F5CF5819D19B3B58

[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Fabrikam.req', [System.Text.Encoding]::Unicode.GetBytes($txtcert))

有关详细语法和参数信息,请参阅 Export-ExchangeCertificate

注意

  • 如果需要将证书请求重新提交到证书颁发机构,但找不到原始证书请求文件,则可以导出挂起的证书请求。
  • 导出证书请求时,您通常不需要使用 Password 参数或 BinaryEncoded 开关,同时您要将请求保存到一个 .req 文件中。
  • 不能在另一台服务器上导入导出的挂起证书请求。

如何知道操作成功?

若要验证是否已成功从 Exchange 服务器导出证书,请尝试在另一台服务器上导入证书文件。 有关详细信息,请参阅 在 Exchange 服务器上导入或安装证书