Мой сервис и мой клиент находятся в двух разных сетях LAN. Служба владеет собственным подписанным сертификатом, который используется для установления sh TCP TLS-соединения. Клиент не доверяет этому сертификату напрямую, но доверяет его root сертификату. Оптимально клиент не должен устанавливать какие-либо дополнительные сертификаты.
Сервер не заботится о личности клиента, но клиент должен. Как клиент проверяет, что он подключается к ожидаемому серверу?
<endpoint address="net.tcp://10.64.62.1:23269/CalculatorService"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_ICalculatorService"
contract="CalculatorService.ICalculatorService"
name="clientEndpointBehavior"
behaviorConfiguration="clientEndpointBehavior"
>
<identity>
<dns value="" />
</identity>
</endpoint>
Единственный параметр в <identity>
, который не блокирует идентификацию для одного сертификата или требует windows ClientCredentialType
, - <dns>
. Но в этом случае я не могу понять, каким должно быть значение <dns>
и как это предотвратить поддельные сертификаты, которые также подписаны цепочкой, начинающейся с доверенного root CA?