Борьба с сертификатами: доступ не был успешно получен для закрытого ключа

Я работаю в компании со многими серверами и ПК для разработчиков. Серверы Win2003, ПК-разработчики Windows XP.

На сервере Win2003 с именем preiis01, в среде предварительного производства, другие люди в компании устанавливают сертификат клиента, используя любого другого пользователя (неизвестный пользователь для меня) для входа на сервер preiis01.

Я использую свой "domainCompany\myuser" для входа на сервер preiis01 (используя Terminal Server, Remote Desktop для Windows XP).

в preiis01,

Я выполняю mmc → Snap in → Certificates for Local Machine. В node → Личные → Сертификаты я видел сертификат клиента:

Выпущено ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1

Выпущено FNMT Clase 2 CA

В свойствах сертификата я видел отпечаток: "93 bc a4 ad 58 c9 3c af 8b eb 0b 2f 86 c7 9d 81 70 a6 c4 13"

Теперь я выполняю следующие команды:

1.) FindPrivateKey My LocalMachine -n ​​ "CN = ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1" -a

и я получаю эту ошибку:

Ошибка FindPrivateKey по следующей причине: Нет сертификатов с ключом "CN = ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1 ', найденный в магазине.

2.) FindPrivateKey My LocalMachine -t "93 bc a4 ad 58 c9 3c af 8b eb 0b 2f 86 c7 9d 81 70 a6 c4 13" -c

и я получаю следующее:

* FindPrivateKey помогает пользователю найти местоположение файла Private Key файла X.50 9.

Использование: FindPrivateKey [{{-n} | {-t}} [-f | -d | -a]]

   <subjectName> subject name of the certificate

   <thumbprint>  thumbprint of the certificate (use certmgr.exe to get it)

   -f            output file name only

   -d            output directory only

   -a            output absolute file name

например. FindPrivateKey My CurrentUser -n "CN = John Doe"

например. FindPrivateKey My LocalMachine -t "03 33 98 63 d0 47 e7 48 71 33 62 64 76 5 c 4c 9d 42 1d 6b 52 "-c *

3.) winhttpcertcfg.exe -l -c LOCAL_MACHINE\My -s "ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1"

и я получаю эту ошибку:

Сертификат Microsoft (R) WinHTTP Инструмент настройки Copyright (C) Microsoft Corporation 2001. Соответствие сертификат:

CN = ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1

OU = 700012436

OU = FNMT Clase 2 CA

O = FNMT

C = ES

Ошибка:

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

Доступ не был получен для закрытого ключа.

Любые предложения

Обновлено: Marcel Roma (социальные форумы msdn)

Скорее всего, сертификат был установлен каким-либо другим лицом в вашей компании (например, администратором). Только тот человек имеет доступ к закрытому ключу сертификата. Загрузите инструмент FindPrivateKey, попросите администратора выполнить его, чтобы узнать каталог, в котором был сохранен файл секретного ключа, и позволить ему установить необходимые права, чтобы процесс мог получить доступ к файлу.

Также есть сообщения о том, что Windows XP не удалось извлечь закрытый ключ из файла из-за проблем с кодировкой:

http://blogs.msdn.com/b/alejacma/archive/2010/01/11/winhttpcertcfg-tool-cannot-access-private-key-of-a-certificate.aspx

Update:

Пользователь в домене "domainCompany\Pre_Certificado" установит сертификат в локальном компьютере Store.

domainCompany\Pre_Certificado - это администратор в группе IIS_WPG, имеет локальные политики: "Войдите в систему как услуга"

Я настраиваю идентификатор AppPool в IIS 6.0 для: domainCompany\Pre_Certificado

Приложение ASP.NET выполняется с использованием идентификатора:: domainCompany\Pre_Certificado

Я перезаписываю AppPool и выполняю приложение, получаю System.Security.Cryptography.CryptographicException: не удается найти сертификат и закрытый ключ для дешифрования

Если я снова проведу тестирование, войдите в сеанс на сервере IIS, используя domainCompany\Pre_Certificado, я вызываю страницу в приложении ASP.NET, и все в порядке.

(обратите внимание: войдите в сервер IIS с помощью Terminal Server)

Но если выйти из сеанса на сервере IIS (user: domainCompany\Pre_Certificado), я получаю ту же ошибку:

System.Security.Cryptography.CryptographicException: не удается найти сертификат и закрытый ключ для дешифрования

Любые предложения

Ответ 1

Войдите в систему как пользователь, установивший сертификат (или локальный администратор). Запустите инструмент FindPrivateKey. Перейдите в панель безопасности и добавьте своего пользователя в список. Теперь вы можете войти в систему как самостоятельно и управлять закрытым ключом сертификата.