Мы пытаемся сослаться на сертификат для конфигурации конечной точки клиента в нашем файле конфигурации WCF.
Конфигурация выглядит так:
<client>
<endpoint address="https://domain.server.com/path/service.asmx"
binding="basicHttpBinding" bindingConfiguration="TestServiceSoap"
contract="..." name="...">
<identity>
<certificateReference storeName="TrustedPublisher"
x509FindType="FindBySubjectDistinguishedName"
findValue="...">....
Для теста-сертификата свойство «Тема» выглядит следующим образом:
CN = demo.domain.com
OU = Company
O = Company
L = City
S = County
C = CountryCode
Это работает, если мы предоставим следующее для findValue
атрибута выше:
CN=demo.domain.com, OU=Company, O=Company, L=City, S=County, C=CountryCode
Однако для сертификата, который мы получили от третьей стороны, они добавили свой адрес как часть этого, поэтому приведенный выше список идентификаторов выглядит следующим образом:
CN = demo.domain.com
OU = Company
STREET = Mainstreet 1, Town Center
L = City
S = County
C = CountryCode
Очевидно, что запятая в части STREET не будет работать, так как наша строка теперь содержит "Town Center" как отдельную часть без имени.
Как указать, что мы хотим найти сертификат, используя этот список идентификаторов?
CN=demo.domain.com, OU=Company, O=Company, STREET=Mainstreet 1, Town Center, L=City, S=County, C=CountryCode
^-- Argh!