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

SChannel «не может найти сертификат ни в LocalMachine, ни в CurrentUser store»

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

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

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

PFX был создан путем экспорта из оснастки Certificates 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, и они вступили в брак.

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

ОБНОВЛЕНИЯ