Ошибка Exchange 2016 при назначении TlsCertificateName соединителю получения - PullRequest
0 голосов
/ 29 мая 2020
• 1000 к локальному коннектору получения.

Эти команды создают переменную $ 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 = "Hosted by CONTOSO, In c.", O = "CONTOSO, In c. ", В результате чего команда усекает содержимое переменной TLSCertName.

Я попытался вручную ввести аргумент вместо использования переменной (с кавычками и без них), используя одинарные кавычки, избегая кавычек (`"), но ничего не получилось.

Кто-нибудь сталкивался с этой проблемой? попробовал поискать в Интернете, но не смог найти решение.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 30 мая 2020

Итак, после нескольких часов самостоятельной работы вместо того, чтобы работать с поддержкой Microsoft, я наконец выяснил причину ошибки путем полного совпадения + предположения.

При просмотре значений для темы сертификата в EA C, я заметил, что когда я щелкнул по полю темы, выскочило сообщение:

"В теме сертификата важным значением является общее имя (CN), которое указывает хост, для которого может использоваться сертификат. "

SSL-сертификат, который я использую, является многодоменным сертификатом, и, поскольку общее имя может содержать только одну запись, в сертификате используется поле под названием Subject Alternate Name (SAN), которое позволяет включать несколько имен. Поэтому в теме нет доступного поля CN.

Exchange не читает / не использует поле SAN и не принимает команду из-за отсутствия CN (wi sh это было где-то задокументировано и их поддержка тоже знал это).

Решением было использовать содержимое переменной 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/

Надеюсь, это поможет кому-то, кто ищет ответ для той же проблемы.

Теперь приступим к решению проблемы, которая зависела на этом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...