Import-ExchangeCertificate

此 cmdlet 仅适用于本地 Exchange。

使用 Import-ExchangeCertificate cmdlet 在 Exchange 服务器上导入证书。 使用此 cmdlet 安装从其他服务器导出的证书,并完成挂起的认证请求 (也称为证书签名请求或证书颁发机构 (CA) ) 。

有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法

语法

Import-ExchangeCertificate
      -FileData <Byte[]>
      [-Confirm]
      [-DomainController <Fqdn>]
      [-FriendlyName <String>]
      [-Password <SecureString>]
      [-PrivateKeyExportable <Boolean>]
      [-Server <ServerIdParameter>]
      [-WhatIf]
      [<CommonParameters>]
Import-ExchangeCertificate
      -Instance <String[]>
      [-Confirm]
      [-DomainController <Fqdn>]
      [-FriendlyName <String>]
      [-Password <SecureString>]
      [-PrivateKeyExportable <Boolean>]
      [-Server <ServerIdParameter>]
      [-WhatIf]
      [<CommonParameters>]
Import-ExchangeCertificate
      -FileName <String>
      [-Confirm]
      [-DomainController <Fqdn>]
      [-FriendlyName <String>]
      [-Password <SecureString>]
      [-PrivateKeyExportable <Boolean>]
      [-Server <ServerIdParameter>]
      [-WhatIf]
      [<CommonParameters>]

说明

可以使用 Import-ExchangeCertificate cmdlet 在 Exchange 服务器上导入以下类型的证书文件:

  • 由证书颁发机构 (CA) 颁发的 APKCS #7 证书或证书文件 (.p7b 或 .p7c) 链。 PKCS #7 是加密消息语法标准,一种使用公钥加密进行数字签名或加密数据的语法,其中包括证书。 有关详细信息,请参阅 PKCS #7 加密消息语法概念
  • 包含私钥的 PKCS #12 证书文件 (.cer、.crt、.der、.p12 或 .pfx) 。 PKCS #12 是个人信息交换语法标准版,这是一种文件格式,用于存储证书以及受密码保护的相应私钥。 有关详细信息,请参阅 PKCS #12:个人信息交换语法 v1.1

在 Exchange 服务器上导入证书后,需要使用 Enable-ExchangeCertificate cmdlet 将证书分配给一个或多个 Exchange 服务。

为传输层安全性 (TLS) 和安全套接字层 (SSL) 服务配置证书时,要考虑许多因素。 您需要了解这些因素可能会对整体配置产生的影响。 有关详细信息,请参阅 Exchange Server 中的数字证书和加密

安全套接字层 (SSL) 将由传输层安全性 (TLS) 替代作为用于加密计算机系统之间发送的数据的协议。 它们是如此密切相关,以至于术语"SSL"和"TLS"(不带版本)经常互换使用。 由于这种相似性,Exchange 主题中对“SSL”的引用、Exchange 管理中心和 Exchange 命令行管理程序通常用于包含 SSL 和 TLS 协议。 通常,“SSL”仅在提供版本的情况下指的是实际的 SSL 协议(例如,SSL 3.0)。 有关详细信息,请参阅 Exchange Server TLS 配置最佳做法

您必须先获得权限,然后才能运行此 cmdlet。 虽然本主题中列出了此 cmdlet 的所有参数,但如果这些参数并未包含在分配给您的权限中,那么您将无法使用这些参数。 若要查找在贵组织中运行任何 cmdlet 或参数所需的权限,请参阅 Find the permissions required to run any Exchange cmdlet

示例

示例 1

Import-ExchangeCertificate -Server Mailbox01 -FileName "\\FileServer01\Data\Exported Fabrikam Cert.pfx" -Password (Get-Credential).password

Exchange 2013 中,此示例将证书从 PKCS #12 文件从 \\FileServer01\Data\Exported Fabrikam Cert.pfx 导入到名为 Mailbox01 的 Exchange 服务器。 此文件需要文件的密码。 此证书可能已从另一台服务器导出或由证书颁发机构颁发。

若要导出 Exchange 2016 或 Exchange 2019 中的证书,请使用 FileData 参数,如示例 2 中所述。

示例 2

Import-ExchangeCertificate -Server Mailbox01 -FileData ([System.IO.File]::ReadAllBytes('\\FileServer01\Data\Exported Fabrikam Cert.pfx')) -Password (Get-Credential).password

此示例从示例 1 导入相同的证书文件。 此方法在 Exchange 2016 和 Exchange 2019 中是必需的,因为 FileName 参数不可用。

示例 3

Import-ExchangeCertificate -FileData ([System.IO.File]::ReadAllBytes('C:\Certificates\Fabrikam IssuedCert.p7b'))

此示例从本地 Exchange 服务器上的 PKCS #7 文件 C:\Certificates\Fabrikam IssuedCert.p7b 导入证书链。

参数

-Confirm

Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 造成的影响取决于在你继续操作之前 cmdlet 是否需要确认。

  • 破坏性 cmdlet (例如,Remove-* cmdlet) 具有内置的暂停,该暂停会强制你在继续操作之前确认命令。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:-Confirm:$false
  • 大多数其他 cmdlet (例如,New-* 和 Set-* cmdlet) 没有内置暂停。 对于这些 cmdlet,指定不含值的 Confirm 开关会引入暂停,从而强制要求你先确认命令,然后再继续操作。
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-DomainController

DomainController 参数指定此 cmdlet 从 Active Directory 读取数据或向其写入数据时使用的域控制器。 可以使用完全限定的域名 (FQDN) 来标识域控制器。 例如,dc01.contoso.com。

边缘传输服务器上不支持 DomainController 参数。 边缘传输服务器使用活动目录轻型目录服务 (AD LDS) 的本地实例来读取和写入数据。

Type:Fqdn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-FileData

FileData 参数指定要导入的证书文件的内容。

此参数的有效值要求使用以下语法将文件读取到字节编码对象: ([System.IO.File]::ReadAllBytes('<Path>\<FileName>'))。 可以使用此命令作为参数值,也可以将输出写入变量 () $data = [System.IO.File]::ReadAllBytes('<Path>\<FileName>') ,并将变量用作参数值 ($data) 。

如果证书文件位于运行命令的 Exchange 服务器上,并且这是要安装证书的服务器,则可以使用本地路径。 否则,请使用 UNC 路径 (\\Server\Share) 。

使用此参数导入 PKCS #7 文本证书文件时,这些文件包含:-----BEGIN CERTIFICATE-----和-----END CERTIFICATE----- 或 -----BEGIN PKCS7----- 和 -----END PKCS7-----并且具有 .p7b 或 .p7c 文件扩展名。

如果值中有空格,请使用双引号 (") 将此值括起来。

Type:Byte[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-FileName

注意:此参数已被 2022 H1 累积汇报从 Exchange 2016 和 Exchange 2019 中删除,因为它接受 UNC 路径值。 若要在不使用 FileName 参数的情况下导入证书文件,请使用 FileData 参数。

此参数仅在 Exchange 2013 中可用。

FileName 参数指定要导入的证书文件。 通常,将此参数用于具有 .cer、.crt、.der、.p12 或 .pfx 文件扩展名的 PKCS #12 二进制证书文件。 当文件包含私钥或信任链时,这种类型的二进制证书文件受密码保护。

如果证书文件位于运行命令的 Exchange 服务器上,并且这是要安装证书的服务器,则可以使用本地路径。 否则,请使用 UNC 路径 (\\Server\Share) 。

如果值中有空格,请使用双引号 (") 将此值括起来。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013

-FriendlyName

FriendlyName 参数指定证书的友好名称。 此值的长度不得超过 64 个字符。

友好名称值是描述性文本,不会影响证书的功能。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Instance

此参数已被弃用,将不再使用。

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Password

Password 参数指定导入证书所需的密码。

可以使用以下方法作为此参数的值:

  • (ConvertTo-SecureString -String '<password>' -AsPlainText -Force).
  • 在运行此命令之前,请将密码存储为变量 (例如 $password = Read-Host "Enter password" -AsSecureString) ,然后使用变量 ($password 值) 。
  • (Get-Credential).password 运行此命令时,系统会提示安全输入密码。
Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-PrivateKeyExportable

PrivateKeyExportable 参数指定证书是否具有可导出的私钥,并控制是否可以从此服务器导出证书。 有效值包含:

  • $true:私钥是可导出的,因此可以从此服务器导出证书。
  • $false:私钥不可导出,因此无法从此服务器导出证书。 此值为默认值。
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Server

服务器参数指定要运行此命令的Exchange服务器。 可以使用唯一标识该服务器的任何值。 例如:

  • 名称
  • FQDN
  • 可分辨名称 (DN)
  • Exchange 旧版 DN

Exchange 旧版 DN

Type:ServerIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-WhatIf

WhatIf 开关模拟命令操作。 可以使用此开关在不实际应用将会发生的更改的情况下预览这些更改。 不必为此开关指定值。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

输入

Input types

若要了解此 cmdlet 接受的输入类型,请参阅 cmdlet 的输入和输出类型。 如果 cmdlet 的"输入类型"字段为空,则表明此 cmdlet 不接受输入数据。

输出

Output types

若要了解此 cmdlet 接受的返回类型(亦称为"输出类型"),请参阅 cmdlet 的输入和输出类型。 如果"输出类型"字段为空,则表明此 cmdlet 不返回任何数据。