Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vitalijzh  
#1 Оставлено : 31 мая 2012 г. 15:06:33(UTC)
vitalijzh

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.07.2011(UTC)
Сообщений: 8
Откуда: Балашиха

Эта функция отлично работает в виндоуз приложении, но при исползовании в ASP.NET вылетает ошибка -

Не удается найти сертификат и закрытый ключ для расшифровки.

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

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


Ошибка источника:


Строка 302: Console.Write("Вычисляем подпись сообщения для субъекта " +
Строка 303: "{0} ... ", signerCert.SubjectName.Name);
Строка 304: signedCms.ComputeSignature(cmsSigner);
Строка 305: Console.WriteLine("Успешно.");
Строка 306:

Исходный файл: M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs Строка: 304

Трассировка стека:


[CryptographicException: Не удается найти сертификат и закрытый ключ для расшифровки.
]
System.Security.Cryptography.Pkcs.PkcsUtils.CreateSignerEncodeInfo(CmsSigner signer, Boolean silent) +190432
System.Security.Cryptography.Pkcs.SignedCms.Sign(CmsSigner signer, Boolean silent) +134
System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer, Boolean silent) +345
System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer) +6
Samples.CMS.DetachedSignature.SignMsg(Byte[] msg, X509Certificate2 signerCert) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs:304
Samples.CMS.DetachedSignature.MyDetachedSignature(String signerXml, String signerName, Byte[]& encodedSignature) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs:122
RosreestrLib.RosReestrLib.RCreateZipFile(String idSpecialist, String okato, String oktmo, Int32 requestType, String& requestType_, Byte[]& zipFile) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\RosreestrLib.cs:293
RosreestrLib.RosReestrLib.RCreateRequest(String idSpecialist, String okato, String oktmo, Int32 requestType, DateTime date) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\RosreestrLib.cs:447
RosreestrServiceWeb._Default.Button1_Click(Object sender, EventArgs e) in M:\Projects\My\RosreestrService\RosreestrServiceWeb\Default.aspx.cs:39
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565


- разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.
Offline Андрей Писарев  
#2 Оставлено : 31 мая 2012 г. 15:12:25(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,340
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
Цитата:
Не удается найти сертификат и закрытый ключ для расшифровки.


сертификат установлен для "учетной записи компьютер" ?


- разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.


Каким образом? Подробнее...

Отредактировано пользователем 31 мая 2012 г. 15:19:05(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline vitalijzh  
#3 Оставлено : 31 мая 2012 г. 17:47:22(UTC)
vitalijzh

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.07.2011(UTC)
Сообщений: 8
Откуда: Балашиха

Андрей * написал:
Цитата:
Не удается найти сертификат и закрытый ключ для расшифровки.


сертификат установлен для "учетной записи компьютер" ?

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


- разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.


Каким образом? Подробнее...

закрытый ключ сертификата находиться в реестре, щелкаю правой кнопкой на папке закрытого ключа сертификата в реестре - выбираю - Разрешения..., добавляю записи LENOVO\IUSR_COMPUTER-E3CE73, Все, даю им полные права.

Offline vitalijzh  
#4 Оставлено : 31 мая 2012 г. 19:01:01(UTC)
vitalijzh

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.07.2011(UTC)
Сообщений: 8
Откуда: Балашиха

Полный текст метода откуда вызывается функция -


static byte[] SignMsg(
Byte[] msg,
X509Certificate2 signerCert)
{
// Создаем объект ContentInfo по сообщению.
// Это необходимо для создания объекта SignedCms.
ContentInfo contentInfo = new ContentInfo(msg);

// Создаем объект SignedCms по только что созданному
// объекту ContentInfo.
// SubjectIdentifierType установлен по умолчанию в
// IssuerAndSerialNumber.
// Свойство Detached устанавливаем явно в true, таким
// образом сообщение будет отделено от подписи.
SignedCms signedCms = new SignedCms(contentInfo, true);

// Определяем подписывающего, объектом CmsSigner.
CmsSigner cmsSigner = new CmsSigner(signerCert);

if (signerCert == null)
throw new ArgumentNullException("signerCert");

if (!signerCert.HasPrivateKey)
throw new java.lang.SecurityException("Exceptions.ValidationCertificateHasPrivateKey");

// Подписываем CMS/PKCS #7 сообение.
Console.Write("Вычисляем подпись сообщения для субъекта " +
"{0} ... ", signerCert.SubjectName.Name);
signedCms.ComputeSignature(cmsSigner);
Console.WriteLine("Успешно.");

// Кодируем CMS/PKCS #7 подпись сообщения.
return signedCms.Encode();
}

модуль DetachedSignature из хелпа к шарпею.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.