Я работаю в компании со многими серверами и ПК для разработчиков. Серверы win2003, разработчики ПК Windows XP.
На сервере Win2003 с именем preiis01, в среде подготовки производства другие сотрудники компании устанавливают сертификат клиента, используя любого другого пользователя (неизвестного мне) для входа на сервер preiis01.
Я использую своего пользователя "domainCompany \ myuser" для входа на сервер preiis01 (с использованием Terminal Server, Remote Desktop для Windows XP).
в preiis01,
Я выполняю mmc -> Snap in -> Сертификаты для локальной машины. В узле -> Личные -> Сертификаты я видел сертификат клиента:
выдан
ENTIDAD COMPANY INSURE SA - CIF A93 - ИМЯ ФАМИЛИЯ1 ИМЯ1
выдан
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 и 58 c9 3c af 8b eb 0b 2f 86 c7 9d 81 70 a6 c4 13" –c
и я получаю это:
* FindPrivateKey помогает пользователю найти местоположение файла закрытого ключа 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 INSURE SA - CIF A93 - ИМЯ ФАМИЛИЯ1 ИМЯ1"
и я получаю эту ошибку:
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
Ошибка:
Не удалось получить доступ к закрытому ключу. Это может сделать только пользователь, установивший сертификат.
Не удалось получить доступ к закрытому ключу.
Есть предложения ??
Обновлено: Марселем Ромой (социальные форумы MSDN)
Скорее всего, сертификат был установлен другим лицом в вашей компании (например, администратором). Только этот человек имеет доступ к закрытому ключу сертификата. Загрузите инструмент FindPrivateKey, попросите администратора выполнить его, чтобы выяснить каталог, в котором был сохранен файл закрытого ключа, и разрешите ему установить необходимые права, чтобы процесс мог получить доступ к файлу.
Есть также некоторые сообщения о том, что Windows XP не удается извлечь закрытый ключ из файла из-за проблем с кодировкой:
http://blogs.msdn.com/b/alejacma/archive/2010/01/11/winhttpcertcfg-tool-cannot-access-private-key-of-a-certificate.aspx
Обновление:
Пользователь в домене "domainCompany \ Pre_Certificado" устанавливает сертификат в хранилище локального компьютера.
domainCompany \ Pre_Certificado - администратор, в группе IIS_WPG есть локальные политики: «Войти в систему как служба»
Я настраиваю AppPool Identity в IIS 6.0 для: domainCompany \ Pre_Certificado
Приложение ASP.NET выполняется с использованием удостоверения :: domainCompany \ Pre_Certificado
Я перезагружаю AppPool и запускаю приложение, я получаю System.Security.Cryptography.CryptographicException: не удается найти сертификат и закрытый ключ для расшифровки
Если я протестирую снова, войдите в систему на сервере IIS, используя пользователя domainCompany \ Pre_Certificado, я вызываю страницу в приложении ASP.NET, и все в порядке.
(примечание: авторизуйтесь на сервере IIS с использованием сервера терминалов)
Но если выйти из сеанса на сервере IIS (пользователь: domainCompany \ Pre_Certificado), я получаю ту же ошибку:
System.Security.Cryptography.CryptographicException: не удается найти сертификат и закрытый ключ для расшифровки
Есть предложения ??