При защите служб WCF с помощью сертификатов сервера и клиента существует простой способ убедиться в подлинности сертификата поставщика услуг (сертификата сервера) путем сравнения открытого ключа или отпечатка пальца сертификата отправителя с ожидаемым значением.
На http://msdn.microsoft.com/en-us/library/ff648360.aspx это объясняется в шаге 8. Вы можете настроить файл app.config в разделе конечной точки с элементом идентификации, куда вы можете передать ожидаемое закодированное значение отпечатка пальца сертификата сервера. Сравнение полученного сертификата службы и ожидаемого значения гарантирует, что я говорю с ожидаемым сервером.
Но теперь я рассматриваю точку зрения серверов. Сервер может иметь несколько сертификатов RootCA в своем хранилище сертификатов. Если сертификат клиента, отправленный запрашивающей стороной, был выпущен (и подписан) одним из этих RootCA, моя служба будет доверять этому сертификату клиента. Как я могу гарантировать, что моя служба будет доверять только сертификатам, выданным одной определенной RootCA? И как настроить один доверенный RootCA?
(Я думаю, что это может быть эквивалентным способом закрепления сертификатов для клиентских сертификатов, выпущенных на RootCA)