将TlsCertificateName分配给接收连接器的Exchange 2016错误

问题描述 投票:0回答:1

我花了十多个小时与Microsoft一起工作,以在本地Exchange 2016 Server和Azure AD环境之间配置混合设置,并且当尝试将TlsCertificateName值分配给On时,目前停留在错误(请参阅下文)上-场所接收连接器。

这些命令创建一个变量$ TLSCertName,其中包括证书颁发者和主题值:

$TLSCert = Get-ExchangeCertificate -Thumbprint <Thumbprint>
$TLSCertName = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)"
Set-ReceiveConnector "<Receive Connector Name" -TlsCertificateName $TLSCertName

尝试执行此命令时显示的错误是:

Cannot process argument transformation on parameter 'TlsCertificateName'. Cannot convert value "<TLSCertName>" to type "Microsoft.Exchange.Data.SmtpX509Identifier". Error:
""<TLSCertName>" isn't a valid Certificate Identifier."
+ CategoryInfo : InvalidData: (:) [Set-ReceiveConnector], ParameterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-ReceiveConnector
+ PSComputerName : <Server's FQDN>

Microsoft认为此问题是由证书主题中包含引号的某些值引起的,例如,OU =“由CONTOSO,Inc.托管,O =” CONTOSO,Inc.“,从而导致命令截断了内容TLSCertName变量的名称。

我尝试手动输入参数,而不是使用变量(带引号和不带引号),使用单引号,转义引号(`”),但没有任何效果。

有人遇到过这个问题吗?我曾尝试过在线研究,但找不到解决方案。

任何帮助将不胜感激!

azure-active-directory office365 exchange-server hybrid
1个回答
0
投票
因此,经过数小时的独自冒险而不是与Microsoft支持人员合作,我终于通过完全的巧合+猜测的工作找出了错误的原因。

在EAC中查看证书主题的值时,我在单击主题字段时注意到弹出消息说:

“在证书的主题中,重要的值是共同的 名称(CN),表示可以使用证书的主机 为。”

我正在使用的SSL证书是一个多域证书,并且由于公用名最多只能包含一个条目,因此该证书使用一个称为主题备用名称(SAN)的字段,该字段允许包含多个名称。因此,主题中没有CN字段。

Exchange不会读取/使用SAN字段,并且由于缺少CN,所以不接受命令(希望此消息已记录在某处,并且他们的支持者也知道)。

解决方案是在命令中使用TLSCertName变量的内容,然后将CN值手动添加到主题部分,如下所示:

<S>CN=contoso.com, OU=Multi-Domain SSL, OU="Hosted by CONTOSO, INC.", O="CONTOSO, Inc."...

请记住,CN必须按照标准要求在SAN中存在。您可以在https://support.dnsimple.com/articles/what-is-common-name/中阅读有关此内容的更多信息。

希望这可以帮助某人寻找相同问题的答案。

现在解决依赖此的问题!

© www.soinside.com 2019 - 2024. All rights reserved.