Если вы настроили IIS для запроса взаимного HTTPS (SSL с клиентскими сертификатами), IIS / http.sys отвечает за проверку сертификата, а клиентский сертификат должен находиться либо в хранилище доверенных лиц, либо он должен быть выдан доверенным центром сертификации. Сертификат проверяется во время подтверждения безопасности для установления соединения SSL. Когда IIS используется для размещения службы WCF, эта проверка выполняется за пределами WCF (в случае самостоятельного размещения вы можете использовать пользовательскую проверку сертификата ).
Если вы хотите ограничить доступ к сервису только для ограниченного подмножества клиентов (с сертификатами, выданными только одним ЦС), вам следует переместить это требование с аутентификации (проверки сертификата) на авторизацию = custom AuthorizationPolicy ваша служба WCF, где вы будете проверять, что сертификат был выдан правильным CA = клиент имеет право вызывать вашу службу.
Доверенных эмитентов также можно настроить на системном уровне с помощью netsh - отметьте sslctlidentifier
и sslctlstorename
. Эта конфигурация будет глобальной для всего порта (веб-сайта), поэтому, если у вас есть несколько веб-приложений или сервисов с разными требованиями, размещенными на одном и том же порту, это не подойдет вам.