Назад | Перейти на главную страницу

IE7 перестает отправлять клиентский SSL-сертификат

Мы используем клиентские SSL-сертификаты для защиты взаимодействия пользователей через Интернет с нашим веб-сервером (сайт редактирования для сайта SharePoint). Сертификаты генерируются внутри и отправляются пользователям для установки.

Обычно у нас нет проблем, но в последнее время некоторые пользователи не могут получить доступ к сайтам, в то время как другие могут успешно пройти аутентификацию в течение того же периода времени и даже с использованием того же сертификата.

Захват сетевого пакета предполагает, что IE не всегда отправляет сертификат. На этом этапе удаление и повторная установка сертификата устраняет проблему, но это нежелательно.

У вас есть более одного сертификата в личном магазине клиента? Если существует более одного сертификата, IE может не выбрать правильный сертификат, поэтому он не будет ничего отправлять. Требуется ли серверу аутентификация клиента при просмотре сетевого сниффа?

Если проблема присутствует, можете ли вы указать сертификат клиента с помощью certutil.exe? Вы можете использовать certutil -v -user -store "my" и проверить наличие разрешений / прохождение теста шифрования / другие вещи, которые могут не отображаться. Если что-то есть, вы можете попытаться найти первопричину.

Вы действительно проверяете личность клиента с помощью сертификата SSL, а не просто используете сертификат на стороне сервера и SSL для шифрования связи? Если да, то это не особенно распространенный сценарий (хотя у вас могут быть очень веские причины для этого). Если у вас нет бизнес-потребности в аутентификации клиентов с помощью сертификатов, вы все равно можете зашифровать связь, отключив аутентификацию на основе сертификатов на стороне клиента, что решит вашу проблему :)

Согласно Проверка подлинности IIS документация по MSDN:

IIS также может использовать SSL / TLS для аутентификации клиента, требуя от клиента предоставить сертификат. При запросе сертификата клиента сервер предоставляет клиенту список центров сертификации, которым сервер доверяет. Этот список получен из списка доверенных сертификатов (CTL) сервера. Если клиент обладает сертификатом, выданным ЦС из CTL, он отправляет копию этого сертификата на сервер для проверки. Если сертификат действителен, IIS аутентифицирует пользователя, который сопоставляется с предоставленным сертификатом. Таким образом, вам следует ограничить CTL в IIS теми центрами сертификации, которые вы считаете действительно заслуживающими доверия.

Возможно ли, что у вас есть несколько центров сертификации, генерирующих сертификаты клиентов, и по какой-то причине один из них отсутствует в списке доверенных сертификатов сервера (CTL)?