SChannel "не может найти сертификат ни в LocalMachine, ни в хранилище CurrentUser"

У нас есть собственное приложение, которое требует использования клиентских SSL-сертификатов для аутентификации на удаленном сервере (не под нашим контролем).

Раньше это работало без проблем, но при развертывании на новом сервере у нас возникают проблемы при использовании Windows 2008 для использования сертификата.

Сертификат существует в виде файла.pfx, который содержит закрытый ключ. Тот же сертификат существует в хранилище LocalMachine, опять же с его закрытым ключом. Мы убедились, что в хранилище LocalMachine правильно указано, создав веб-сайт в IIS для этого сертификата, поэтому мы рады, что сертификат, цепочка сертификатов и закрытый ключ действительны.

PFX был создан путем экспорта из оснастки MMC "Сертификаты".

Проблема заключается в том, что в журналах системной диагностики мы получаем следующее сообщение о том, что не удается найти закрытый ключ:

System.Net Information: 0 : [5988] SecureChannel#23264094 – Locating the private key for the certificate: [Subject]
CN=internal-server.company.com, OU=Servers, OU=Devices, O=org

[Issuer]
CN=SubCA02, OU=CA, o=org

[Serial Number]
407ABCDE

[Not Before]
31/10/2013 11:08:48 AM

[Not After]
31/10/2016 11:08:48 AM

[Thumbprint]
4354A34F6004F019E60F055979A47E50F62D1504
.
System.Net Information: 0 : [5988] SecureChannel#23264094 – Cannot find the certificate in either the LocalMachine store or the CurrentUser store.

Я проверил отпечаток, эмитент и серийный номер, указанные в журнале, с сертификатом в хранилище LocalMachine, и они объединились.

Из того, что я могу сказать с большим поиском, это, кажется, проблема с разрешениями. Пользователь, которому запущено приложение, получил доступ к закрытому ключу (Персональные сертификаты -> щелкните правой кнопкой мыши по сертификату -> Все задачи -> Управление личными ключами), так что теперь я не знаю, какие разрешения) это может быть причиной проблемы.

ОБНОВЛЕНИЕ

  • Мы добавили пользователя приложения в группу "Администраторы", перезагрузили сервер и попытались снова. Вопрос остается.

  • Мы включили отладку SChannel (согласно http://support.microsoft.com/kb/260729). Журнал системных событий сообщает следующее предупреждение:

    Удаленный сервер запросил аутентификацию клиента SSL, но не удалось найти подходящий сертификат клиента. Будет предпринята попытка анонимного подключения. Этот запрос SSL-соединения может быть успешным или неуспешным в зависимости от настроек политики сервера.

  • Нет доступа.NET отказано в доступе исключение; по сути SChannel отказывается от предоставления клиентского сертификата. Это было проверено с помощью трассировки Wireshark, которая показывает нулевое количество сертификатов до того, как удаленные стороны вызовут сброс TCP.

0 ответов

Другие вопросы по тегам