Я провожу целый день, диагностируя проблемы с моими тестовыми сервисами, используя общий HTTPS. Службы размещаются в IIS 7 на тестовом сервере под управлением Windows Server 2008 Enterprise edition.
Неожиданно несколько недель назад все тестовые службы перестали работать, и любой запрос к этим службам заканчивался ошибкой 403.7 «Требуется сертификат клиента». После долгих поисков я нашел Эта статья описывая аналогичную проблему с Windows Server 2003.
Короче говоря, проблема вызвана слишком большим количеством доверенных корневых центров сертификации, установленных в хранилище сертификатов локального компьютера. Сервер во время взаимного подтверждения HTTPS отправляет клиенту «список» доверенных центров сертификации, и клиент может выбрать сертификат на основе этого списка (если сайт в IIS не настроен с помощью CTL, но это для другой вопрос). Проблема в том, что список может иметь только 16 КБ, поэтому, если есть больше центров сертификации, они просто не отправляются клиенту. Если используемый сертификат клиента выпущен одним из таких усеченных центров сертификации, он не отправляется на сервер.
После этого я проверил хранилище доверенных корневых сертификатов локального компьютера и обнаружил, что установлено более 200 доверенных корневых центров сертификации. Что еще хуже: мы их не устанавливали! Я где-то нашел немного информации (извините, не могу найти ее снова), что эти центры сертификации устанавливаются автоматически через Центр обновления Windows.
Вопрос: Как отключить установку сертификатов ЦС на наш компьютер, не выключая обновление windows?
Честно говоря, я не думаю, что все они были установлены Центром обновления Windows. Если бы это было так, вероятно, было бы намного больше людей с этой проблемой, не так ли?
Они также могут быть установлены объектами групповой политики и членством в домене, и это то, где я бы сначала посмотрел.
Но, прежде чем искать, я бы хотел разрешить использование HTTPS ... (возможно, если вы не подозреваете или не знаете, что у вас есть вредоносные доверительные отношения CA), что проще всего сделать, удалив те, которые вам не нужны. Инструмент диспетчера сертификатов, плюс удаление по сценарию в части сценария запуска или выключения объекта групповой политики.
Они также могут быть установлены злонамеренно, и в этом случае вы сильно скомпрометированы, и я бы порекомендовал / вам нужно начать стирать каждую машину с вредоносными сертификатами в качестве доверенных центров сертификации.