New-ExchangeCertificate

此 cmdlet 仅适用于本地 Exchange。

使用 New-ExchangeCertificate cmdlet 可以创建和续订自签名证书,并创建向证书颁发机构 (CA) 提出的新建证书和续订证书的证书请求(亦称为“证书签名请求 (CSR)”)。

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

语法

New-ExchangeCertificate
   [-BinaryEncoded]
   [-GenerateRequest]
   [-RequestFile <String>]
   [-Confirm]
   [-DomainController <Fqdn>]
   [-DomainName <MultiValuedProperty>]
   [-Force]
   [-FriendlyName <String>]
   [-IncludeAcceptedDomains]
   [-IncludeAutoDiscover]
   [-IncludeServerFQDN]
   [-IncludeServerNetBIOSName]
   [-Instance <X509Certificate2>]
   [-KeySize <Int32>]
   [-PrivateKeyExportable <Boolean>]
   [-Server <ServerIdParameter>]
   [-SubjectKeyIdentifier <String>]
   [-SubjectName <X500DistinguishedName>]
   [-WhatIf]
   [<CommonParameters>]
New-ExchangeCertificate
   [-Services <AllowedServices>]
   [-Confirm]
   [-DomainController <Fqdn>]
   [-DomainName <MultiValuedProperty>]
   [-Force]
   [-FriendlyName <String>]
   [-IncludeAcceptedDomains]
   [-IncludeAutoDiscover]
   [-IncludeServerFQDN]
   [-IncludeServerNetBIOSName]
   [-Instance <X509Certificate2>]
   [-KeySize <Int32>]
   [-PrivateKeyExportable <Boolean>]
   [-Server <ServerIdParameter>]
   [-SubjectKeyIdentifier <String>]
   [-SubjectName <X500DistinguishedName>]
   [-WhatIf]
   [<CommonParameters>]

说明

Exchange使用证书进行 SSL 和 TLS 加密。

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

安全套接字层 (SSL) 将由传输层安全性 (TLS) 替代作为用于加密计算机系统之间发送的数据的协议。它们是如此密切相关,以至于术语"SSL"和"TLS"(不带版本)经常互换使用。由于此相似性,Exchange 主题、Exchange 管理中心 和 Exchange 命令行管理程序 中对"SSL"的引用通常用来同时涵盖 SSL 和 TLS 协议。通常,"SSL"仅在提供版本的情况下指的是实际的 SSL 协议(例如,SSL 3.0)。若要找出您应禁用 SSL 协议并切换到 TLS 的原因,请查看防御 SSL 3.0 漏洞

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

示例

示例 1

New-ExchangeCertificate

此示例使用以下设置创建自签名证书:

Subject 值是 CN=<ServerName> (,例如 CN=Mailbox01) 。

The Domains (subject alternative names) value is <ServerName>,<ServerFQDN> (for example, Mailbox01,Mailbox01.contoso.com) .

Services 的值为 IMAP,POP,SMTP

服务值 SMTP 授予网络服务本地安全组对证书私钥的读取权限。

服务值 SMTP 和包含服务器名称的 Subject 值将证书发布到 Active Directory,以便 Exchange 直接信任可以验证服务器的真实性,实现相互 TLS。

如果不希望此证书替换在 Exchange 安装期间创建的现有自签名证书,请务必在提示您覆盖现有默认 SMTP 证书的提示中选择"否"。

示例 2

New-ExchangeCertificate -GenerateRequest -RequestFile "C:\Cert Requests\woodgrovebank.req" -SubjectName "c=US,o=Woodgrove Bank,cn=mail.woodgrovebank.com" -DomainName autodiscover.woodgrovebank.com,mail.fabrikam.com,autodiscover.fabrikam.com

此示例使用以下设置创建向证书颁发机构提出的新建证书请求:

此请求进行 Base64 编码。

输出显示在屏幕上,还会写入文本文件 C: \ C: Cert Requests \ woodgrovebank.req。

Subject 的值为 c=US,o=Woodgrove Bank,cn=mail.woodgrovebank.com

The Domains (subject alternative names) value contains the additional valuesautodiscover.woodgrovebank.com, mail.fabrikam.com, and autodiscover.fabrikam.com.

创建证书请求后,将输出发送到 CA。 从 CA 收到证书后,使用 Import-ExchangeCertificate cmdlet 安装证书,然后使用 Enable-ExchangeCertificate cmdlet 将证书分配给 Exchange 服务。

如果 CA 要求在 DER 编码的文件中请求证书,请使用 BinaryEncoding 开关。

示例 3

Get-ExchangeCertificate -Thumbprint c4248cd7065c87cb942d60f7293feb7d533a4afc | New-ExchangeCertificate -PrivateKeyExportable $true

此示例续订指纹值为 c4248cd7065c87cb942d60f7293feb7d533a4afc 的现有自签名证书。 您可以使用 Get-ExchangeCertificate cmdlet 查找指纹值。 将 PrivateKeyExportable 参数设置为值 $true 允许从服务器证书导出续订的自签名证书, (并导入其他) 。

示例 4

Get-ExchangeCertificate -Thumbprint 8A141F7F2BBA8041973399723BD2598D2ED2D831 | New-ExchangeCertificate -GenerateRequest -RequestFile "C:\Cert Requests\fabrikam_renewal.req"

此示例创建续订证书颁发机构颁发的现有证书的请求。证书请求具有以下设置:

现有证书的指纹值是 8A141F7F2BBA8041973399723BD2598D2ED2D831。您可以使用 Get-ExchangeCertificate cmdlet 查找指纹值。

此请求进行 Base64 编码。

输出显示在屏幕上,还会写入文本文件 C: \ C: Cert Requests \ fabrikam _ renewal.req。

创建证书续订请求后,将输出发送到 CA。在收到 CA 颁发的续订证书后,使用 Import-ExchangeCertificate cmdlet 安装证书。

示例 5

Get-ExchangeCertificate -Thumbprint c4248cd7065c87cb942d60f7293feb7d533a4afc | New-ExchangeCertificate

此示例演示如何续订具有特定指纹值的自签名证书。 您可以通过以下两种方法之一获取指纹值。

选择管理中心Exchange证书,然后选择"编辑"以查看证书的属性。 指纹值显示在"证书Exchange中。

运行 Get-ExchangeCertificate cmdlet 可返回服务器上安装的所有证书及其指纹值的列表。

参数

-BinaryEncoded

BinaryEncoded 开关指定是否使用 DER 可辨别编码规则 (编码新证书) 。 不必为此开关指定值。

如果您不使用此开关,则请求进行 Base64 编码。

仅当您使用 GenerateRequest 开关时,此开关才可用。

对于经过 Base64 编码的请求,您需要将文件的内容发送给证书颁发机构。对于经过 DER 编码的请求,您只需发送证书文件本身。

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

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

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

DomainName 参数指定证书请求或自签名证书的备用名称字段 (也称为"主题替换名称"或 SAN 字段) 的一个或多个 FQDN 或服务器名称。

如果证书的 Subject 字段中的值与目标服务器名称或 FQDN 不一致,那么请求者会在 Subject Alternative Name 字段中查找匹配项。

值通常包括服务器名称(例如,Mailbox01)和 FQDN(例如,mail.contoso.com)。 可以指定用逗号分隔的多个值。 Valuescan 包含字符 a 到 z、0 到 9 以及连字符 (-) 。 域名的长度不得超过 255 个字符。

当满足以下两个条件时,默认值Exchange服务器的名称和 FQDN:

  • 不使用此参数。
  • 不使用下列任何参数:IncludeAcceptedDomains、IncludeAutoDiscover、IncludeServerFQDN 或 IncludeServerNetBIOSName。
Type:MultiValuedProperty
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-Force

Force 开关指定是否取消显示警告或确认消息。您可以在以编程方式运行任务时使用此开关,因为此时并不适合提示用户提供管理输入。您无需使用此开关指定值。

默认情况下,当您创建已为 SMTP 启用的自签名证书(不含 Services 参数,或 Services 参数包含值 SMTP)时,系统会提示您使用要创建的新证书替换现有的默认 SMTP 证书。如果您使用 Force 开关,则新的 SMTP 证书会自动替换现有的 SMTP 证书,而不询问您。

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

FriendlyName 参数指定证书请求或自签名证书的易记名称。此值的长度不得超过 64 个字符。

默认值为 Microsoft Exchange。 友好名称值是描述性文本,不影响证书的功能。

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

GenerateRequest 开关指定您要创建向证书颁发机构 (CA) 提出的证书请求。您无需使用此开关指定值。

此开关会与 RequestFile 参数一起生成发送给 CA 的 PKCS #10 证书请求。虽然信息的发送方式取决于 CA,但通常情况下,对于经过 Base64 编码的请求,您需要将内容粘贴到电子邮件或 CA 网站的请求表单中。

使用 Import-ExchangeCertificate cmdlet 从证书颁发机构安装证书后,可使用 Enable-ExchangeCertficate cmdlet 为 Exchange 服务启用证书。

如果不使用此开关,则命令将创建新的自签名证书,Exchange证书。

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

IncludeAcceptedDomains 开关指定 Exchange 组织的所有接受域都包括在证书请求或自签名证书的 Subject Alternative Name 字段中。 您无需使用此开关指定值。

使用此开关时:

  • 如果您已经在 DomainName 参数中添加了接受的域,则 Subject Alternative Name 字段中不会添加重复的值。
  • 对于新的自签名证书,如果不使用 Services 参数,则仅将证书分配给 SMTP。
Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-IncludeAutoDiscover

IncludeAutoDiscover 开关指定是否为组织中每个接受的域添加前缀自动发现的主题备用名称Exchange值。 不必为此开关指定值。

例如,如果组织中有接受的域 woodgrovebank.com 和 woodgrovebank.co.uk,则使用此开关会导致在 Subject Alternative Name 字段中添加以下值:

  • autodiscover.woodgrovebank.com
  • autodiscover.woodgrovebank.co.uk

使用此开关时:

  • 如果已在 DomainName 参数中包含值,则 Subject Alternative Name 字段中不会 autodiscover.<AcceptedDomain> 重复该值。
  • 对于新的自签名证书,如果不使用 Services 参数,则仅将证书分配给 SMTP。
Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-IncludeServerFQDN

IncludeServerFQDN 开关指定新证书请求或自签名证书的"主题备用名称"字段中包括 Exchange 服务器的 FQDN。 不必为此开关指定值。

使用此开关时,并且已在 DomainName 参数中包含服务器的 FQDN,则 Subject Alternative Name 字段中的值不会重复。

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

IncludeServerNetBIOSName 开关指定新证书请求或自签名证书的"主题备用名称"字段中包括 Exchange 服务器的 NetBIOS 名称。 您无需使用此开关指定值。

使用此开关时,并且已在 DomainName 参数中包含服务器的 NetBIOS 名称,则 Subject Alternative Name 字段中不会复制该值。

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

KeySize 参数指定与新证书请求或自签名证书关联的 RSA 公钥的大小(单位为位)。有效值为:

  • 1024
  • 2048 (此值为默认值)
  • 4096
Type:Int32
Position:Named
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-RequestFile

RequestFile 参数指定证书请求文件的文件名和路径。此文件包含在您生成经过 Base64 编码的证书请求(不使用 BinaryEncoded 开关)时屏幕上显示的相同信息。

如果证书或证书请求位于运行该命令的同一Exchange服务器,您可以使用本地路径。 否则,请使用 UNC 路径 \\Server\Share () 。 如果值中有空格,请使用双引号 (") 将此值括起来。

仅当使用 GenerateRequest 开关时,才可使用此参数。

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

Services 参数指定Exchange自签名证书所启用的服务。 有效值包含:

  • 无:稍后可以使用 Exchange cmdlet 为服务启用Enable-ExchangeCertificate证书。
  • 联合
  • IIS
  • IMAP:请勿为 IMAP4 服务启用通配符证书。 请改为使用 Set-ImapSettings cmdlet 配置客户端用于连接到 IMAP4 服务的 FQDN。
  • POP:请勿为 POP3 服务启用通配符证书。 请改用 Set-PopSettings cmdlet 来配置客户端用来连接到 POP3 服务的 FQDN。
  • SMTP:为 SMTP 启用证书时,系统将提示您替换默认的 Exchange 自签名证书,该证书用于加密内部组织之间的 SMTP Exchange。 如果要替换默认证书而不显示确认提示,请使用 Force 开关。
  • UM:此值要求 cmdlet 上的 UMStartupMode Set-UMService设置为 TLS 或 Dual。 如果 UMStartupMode 参数设置为 TCP 的默认值,则不能为 UM 服务启用证书。
  • UMCallRouter:此值要求 cmdlet 上的 UMStartupMode Set-UMCallRouterService设置为 TLS 或 Dual。 如果 UMStartupMode 参数设置为默认值 TCP,则不能为 UM 呼叫路由器服务启用证书。

可以指定用逗号分隔的多个值。 默认值为 IMAP、POP 和 SMTP。

此参数不能与 GenerateRequest 开关一起使用。

一旦为服务启用证书,便无法再从证书中删除服务。

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

SubjectKeyIdentifier 参数指定新闻自签名证书的唯一主题密钥标识符。 例如,运行命令 $ski = [System.Guid]::NewGuid().ToString("N"),以及对此参数使用值 $ski。

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

SubjectName 参数指定证书请求或自签名证书的 Subject 字段。

每个证书都需要 Subject 字段的值,但您只能输入一个值。请求者尝试将目标服务器名称或 FQDN 与使用者的公用名 (CN) 值匹配。

此参数使用语法 [C=CountryOrRegion,S=StateOrProvince,L=LocalityOrCity,O=Organization,OU=Department],CN=HostNameOrFQDN :。 虽然唯一的必需值为 ,但证书请求应始终包含 ,但证书颁发机构可能还需要其他 CN=HostNameOrFQDN C=CountryOrRegion 值。

例如,如果要让证书的使用者为美国的 mail.contoso.com,则可以使用下列任意值之一:

  • C=US,S=WA,L=Redmond,O=Contoso,OU=IT,CN=mail.contoso.com
  • C=US,O=Contoso,CN=mail.contoso.com
  • C=US,CN=mail.contoso.com

如果不使用此参数,则默认值是运行命令的 Exchange 服务器的名称 (例如 CN=Mailbox01) 。

对于使用者可选名称 (SAN) 证书,您应该从 DomainName 参数中选择一个值用于 SubjectName 值。实际上,您为 SubjectName 指定的 CN 值会自动包含在 DomainName 值中。

对于通配符证书,请使用 SubjectName 值,其中包含通配符 * () 。 例如,C=US,CN= * .contoso.com。

Type:X500DistinguishedName
Position:Named
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-实例

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

Type:X509Certificate2
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019
-服务器

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

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

Exchange 旧版 DN

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

输入

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

输出

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