Import-ExchangeCertificate
此 cmdlet 仅适用于本地 Exchange。
使用 Import-ExchangeCertificate cmdlet 在 Exchange 服务器上导入证书。 可使用此 cmdlet 安装从其他服务器导出的证书,并完成挂起的认证请求, (也称为证书签名请求或来自证书颁发机构 (CA) ) 的 CSR。
有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法。
语法
FileData
Import-ExchangeCertificate
-FileData <Byte[]>
[-Confirm]
[-DomainController <Fqdn>]
[-FriendlyName <String>]
[-Password <SecureString>]
[-PrivateKeyExportable <Boolean>]
[-Server <ServerIdParameter>]
[-WhatIf]
[<CommonParameters>]
FileName
Import-ExchangeCertificate
-Instance <String[]>
[-Confirm]
[-DomainController <Fqdn>]
[-FriendlyName <String>]
[-Password <SecureString>]
[-PrivateKeyExportable <Boolean>]
[-Server <ServerIdParameter>]
[-WhatIf]
[<CommonParameters>]
Instance
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 是个人信息交换语法Standard,一种文件格式,用于存储带有受密码保护的相应私钥的证书。 有关详细信息,请参阅 PKCS #12:个人信息交换语法 v1.1。
在 Exchange 服务器上导入证书后,需要使用 Enable-ExchangeCertificate cmdlet 将证书分配给一个或多个 Exchange 服务。
为传输层安全性 (TLS) 服务配置证书时,需要考虑许多因素。 您需要了解这些因素可能会对整体配置产生的影响。 有关详细信息,请参阅 Exchange Server 中的数字证书和加密。
TLS 取代了 Secure Sockets Layer (SSL) ,成为用于加密计算机系统之间发送的数据的协议。 过去,“TLS”和“SSL”经常互换使用。 Exchange 文档中对 SSL 的任何引用实际上都是指 TLS,除非还包含版本号 (例如 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 中导出证书,请使用示例 2 中所述的 FileData 参数。
示例 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
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 有何影响取决于 cmdlet 在继续操作前是否需要确认。
- 破坏性 cmdlet(例如 Remove-* cmdlets)内置有暂停,可强制要求先确认命令,然后再继续操作。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:
-Confirm:$false。 - 其他大多数 cmdlet(例如 New-* 和 Set-* cmdlet)都没有内置暂停。 对于这些 cmdlet,在不带值的情况下指定“确认”开关会引入一个暂停,从而强制你在继续之前确认命令。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | cf |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-DomainController
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
DomainController 参数指定此 cmdlet 从 Active Directory 读取数据或向其写入数据时使用的域控制器。 可以使用完全限定的域名 (FQDN) 来标识域控制器。 例如,dc01.contoso.com。
边缘传输服务器上不支持 DomainController 参数。 边缘传输服务器使用活动目录轻型目录服务 (AD LDS) 的本地实例来读取和写入数据。
参数属性
| 类型: | Fqdn |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-FileData
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
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 文件扩展名。
如果值中有空格,请使用双引号 (") 将此值括起来。
参数属性
| 类型: | Byte[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
FileData
| Position: | Named |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-FileName
适用:Exchange Server 2013
注意:2022 H1 累积汇报已从 Exchange 2016 和 Exchange 2019 中删除此参数,因为它接受 UNC 路径值。 若要在不使用 FileName 参数的情况下导入证书文件,请使用 FileData 参数。
此参数仅在 Exchange 2013 中可用。
FileName 参数指定要导入的证书文件。 通常,对于扩展名为 .cer、.crt、.der、.p12 或 .pfx 的 PKCS #12 二进制证书文件,应使用此参数。 当文件包含私钥或信任链时,这种类型的二进制证书文件受密码保护。
如果证书文件位于运行命令的 Exchange 服务器上,并且此服务器与要安装证书的服务器相同,则可以使用本地路径。 否则,请使用 UNC 路径 (\\Server\Share) 。
如果值中有空格,请使用双引号 (") 将此值括起来。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Instance
| Position: | Named |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-FriendlyName
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
FriendlyName 参数指定证书的友好名称。 此值的长度不得超过 64 个字符。
友好名称值是描述性文本,不会影响证书的功能。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Instance
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
此参数已弃用,不再使用。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
FileName
| Position: | Named |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Password
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
Password 参数指定导入证书所需的密码。
可以使用以下方法作为此参数的值:
-
(ConvertTo-SecureString -String '<password>' -AsPlainText -Force). - 在运行此命令之前,请将密码存储为变量 (
$password = Read-Host "Enter password" -AsSecureString例如) ,然后将变量 ($password) 用于该值。 -
(Get-Credential).password运行此命令时系统提示您安全地输入密码。
参数属性
| 类型: | SecureString |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-PrivateKeyExportable
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
PrivateKeyExportable 参数指定证书是否具有可导出的私钥,并控制是否可以从此服务器导出证书。 有效值包含:
- $true:私钥是可导出的,因此可以从此服务器导出证书。
- $false:私钥不可导出,因此无法从此服务器导出证书。 此值为默认值。
参数属性
| 类型: | Boolean |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Server
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
服务器参数指定要运行此命令的Exchange服务器。 可以使用唯一标识该服务器的任何值。 例如:
- 名称
- FQDN
- 可分辨名称 (DN)
- Exchange 旧版 DN
Exchange 旧版 DN
参数属性
| 类型: | ServerIdParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-WhatIf
适用:Exchange Server 2010、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019、Exchange Server SE
WhatIf 开关显示命令执行的操作,而无需进行任何更改。 不必为此开关指定值。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | WI |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持以下常用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
Input types
若要了解此 cmdlet 接受的输入类型,请参阅 cmdlet 的输入和输出类型。 如果 cmdlet 的"输入类型"字段为空,则表明此 cmdlet 不接受输入数据。
输出
Output types
若要了解此 cmdlet 接受的返回类型(亦称为"输出类型"),请参阅 cmdlet 的输入和输出类型。 如果"输出类型"字段为空,则表明此 cmdlet 不返回任何数据。