Вопрос или проблема
Я пытаюсь реализовать аутентификацию клиентских сертификатов на IIS 8. Я настроил свою конфигурацию на рабочем компьютере и подтвердил, что она работает как ожидалось. Однако после настройки на сервере, всякий раз, когда я перехожу на сайт и меня просят выбрать клиентский сертификат, я выбираю его и сразу получаю ошибку 403.16. Журнал неудачных запросов показывает код ошибки 2148204809 и сообщение “Цепочка сертификатов обработана, но завершилась корневым сертификатом, который не доверяется поставщиком доверия.”
У меня есть действующий клиентский сертификат и также действующий сертификат Удостоверяющего центра (CA). Сертификат CA установлен в доверенных корневых органах на учетной записи компьютера как сервера, так и клиентского компьютера, а клиентский сертификат установлен в личной области учетной записи текущего пользователя на клиентском компьютере.
Клиентский сертификат подписан непосредственно корневым CA, и, как я уже говорил, оба сертификата действительны. В цепочке сертификатов нет других сертификатов, и в области доверенных корневых центров сертификации нет промежуточных сертификатов.
Конфигурация IIS имеет sslFlags = SslNegotiateCert, и аутентификация сопоставления клиентских сертификатов включена.
Сервер не настроен на отправку CTL, и у нас установлено SendTrustedIssuerList = 0.
Я не вижу, почему клиентский сертификат не должен быть доверенным.
У меня была точно такая же проблема. Она решилась, когда я выбрал “Отключить списки отзыва сертификатов (CRL)” в свойствах самоподписанного сертификата в доверенном корневом CA локального компьютера.
Я думаю, вам следует разместить корневой CA в доверенных корневых сертификатах под сертификатами текущего пользователя на вашем клиентском компьютере. Если бы я смоделировал вашу ситуацию, мой личный сертификат показал бы ошибку, потому что корневой CA не был найден.
Ответ или решение
Настройка клиентских сертификатов на IIS 8: Ошибка 403.16
Когда вы настраиваете аутентификацию с помощью клиентских сертификатов на сервере IIS 8, возникновение ошибки 403.16 может указывать на проблемы с доверием клиентского сертификата. Эта проблема может быть вызвана несколькими факторами. Давайте рассмотрим этот вопрос подробно.
1. Возможные причины ошибки 403.16
Ошибка 403.16 с кодом 2148204809 и сообщением "Цепочка сертификатов была обработана, но завершилась корневым сертификатом, который не доверяется провайдером доверия" обычно говорит о том, что клиентский сертификат не может быть проверен из-за отсутствия доверия к корневому сертификату.
Основные причины:
- Неправильная установка корневого сертификата: Если корневой сертификат вашего центра сертификации не установлен в хранилище доверенных корневых сертификатов на клиентской машине, это может вызывать ошибку.
- Отсутствие сертификата в личном хранилище: Клиентский сертификат должен быть установлен в разделе "Личные" хранилища текущего пользователя на клиентском устройстве.
- Проблемы с CRL (Список отзыва сертификатов): Если сервер не может проверить, было ли отозвано клиентское сертификат, это также может вызвать ошибку.
2. Шаги для решения проблемы
Чтобы устранить ошибку 403.16, выполните следующие действия:
2.1 Установка корневого сертификата
Убедитесь, что корневой сертификат установлен как в "Trusted Root Certification Authorities" (Доверенные корневые центры сертификации) на сервере, так и в "Trusted Root Certification Authorities" на клиентской машине.
- На сервере: Проверьте, установлен ли корневой сертификат на сервере IIS в раздел "Доверенные корневые сертификаты" для учетной записи компьютера.
- На клиенте: Установите тот же корневой сертификат в "Персональные" сертификаты текущего пользователя на клиенте.
2.2 Проверка сертификатов
Проверьте, что цепочка сертификатов корректна:
- Убедитесь, что клиентский сертификат фактически подписан корневым центром сертификации и не содержит промежуточных сертификатов.
- Проверьте, что сертификаты действительны и не истекли.
2.3 Настройка параметров CRL
Если вы используете самоподписанный сертификат:
- Откройте свойства самоподписанного сертификата в хранилище доверенных корневых сертификатов на сервере.
- Убедитесь, что установлен параметр "Отключить списки отзыва сертификатов (CRL)".
Это может помочь избежать ошибок, связанных с отсутствием доступа к CRL или недоступностью списка отзыва.
2.4 Настройка IIS
Проверьте настройки IIS:
- Убедитесь, что параметр
sslFlags
установлен в значениеSslNegotiateCert
. - Убедитесь, что
iisClientCertificateMappingAuthentication
включен.
Заключение
Следуя указанным выше шагам и проверяя каждый момент, вы сможете устранить ошибку 403.16 и успешно настроить аутентификацию с помощью клиентских сертификатов на IIS 8. Если проблема остается нерешенной, стоит внимательно изучить журналы событий и выполнить аудит сертификатов на клиентской и серверной сторонах. Если у вас возникнут дополнительные вопросы или понадобится помощь, не стесняйтесь обращаться к профессионалам в области IT.