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