|
wolfree9266 |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Добрый вечер. Интересна причина возникновения ошибки код Код:
|
![]() |
|
|
Андрей Писарев |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Автор: wolfree9266 Добрый вечер. Интересна причина возникновения ошибки В вопросе есть ответ. |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
| Пользователи, просматривающие эту тему |
|
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Ошибка 0х8007065B или «Ошибка исполнения функции» может возникать при работе с сертификатом на торговых площадках или информационных системах из-за отсутствия лицензии на программу Крипто Про CSP.

- Если Ваш сертификат без встроенной лицензии:
Убедитесь, что лицензия на КриптоПро CSP введена и действует.
Для этого найдите «КриптоПро CSP» в программах в меню «Пуск». Во вкладке «Общие» будет указан «Срок действия».

Если лицензия «Истекла» и у Вас есть бланк с актуальной лицензией, введите серийный номер из бланка нажав на кнопку «Ввод лицензии». Подробнее — Как ввести лицензию КриптоПро CSP.
Если лицензии на КриптоПро CSP у Вас нет, Вы можете приобрести её у нас. Для этого позвоните по бесплатному номеру 8 (800) 550-87-19 доб. 2500.
2. Если ваш сертификат со встроенной лицензией:
Убедитесь, что используется КриптоПро не ниже версии 4.0 и сертификат электронной подписи установлен.
В сертификате есть встроенная лицензия, если в открытом ключе сертификата на вкладке «Состав» присутствует поле «Ограниченная лицензия Крипто-Про».
Остались вопросы? Как мы можем помочь?
Как мы можем помочь?
Невозможно создание объекта сервером программирования объектовОтсутствуют разрешения на использование ActiveX объектов
Getting «CryptographicException: Error occurred during a cryptographic operation.» on macOS Mojave.
The project runs successfully under docker but not locally on mac.
.NET Core SDK (reflecting any global.json):
Version: 2.1.500
Commit: b68b931422
Runtime Environment:
OS Name: Mac OS X
OS Version: 10.14
OS Platform: Darwin
RID: osx.10.14-x64
Base Path: /usr/local/share/dotnet/sdk/2.1.500/
Host (useful for support):
Version: 2.1.6
Commit: 3f4f8eebd8
.NET Core SDKs installed:
1.0.0-preview1-002702 [/usr/local/share/dotnet/sdk]
2.0.2 [/usr/local/share/dotnet/sdk]
2.1.300-rc1-008673 [/usr/local/share/dotnet/sdk]
2.1.300 [/usr/local/share/dotnet/sdk]
2.1.302 [/usr/local/share/dotnet/sdk]
2.1.500 [/usr/local/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0-rc1-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0-rc1-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.0-rc2-3002702 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0-rc1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
- Remove From My Forums
-
Question
-
Hi,
I’m running into an issue with new .net framework(4.6.1) security update KB3136000, the previously working application now throws exception in signedXml.ComputeSignature();
System.Security.Cryptography.CryptographicException: Unable to resolve Uri
cid:partdd1df1014f924e76ad48893e0cf70fd7.at System.Security.Cryptography.Xml.Reference.CalculateHashValue(XmlDocument document, CanonicalXmlNodeList refList)
at System.Security.Cryptography.Xml.Reference.UpdateHashValue(XmlDocument document, CanonicalXmlNodeList refList)
at System.Security.Cryptography.Xml.SignedXml.BuildDigestedReferences()
at System.Security.Cryptography.Xml.SignedXml.ComputeSignature()
Any advise please.
Thanks,
Todd
-
Edited by
Friday, March 11, 2016 5:55 AM
-
Edited by
Answers
-
-
Edited by
Susan BradleyMVP
Friday, March 11, 2016 6:56 PM -
Marked as answer by
Todd Liang
Tuesday, March 15, 2016 4:50 AM
-
Edited by
Когда я делаю сертификат x509 для шифрования и дешифрования сообщения, я получил некоторую информацию об ошибке и не смог решить эту проблему. Может ли кто-нибудь когда-нибудь решить эту ошибку? Спасибо.
Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.
Детали исключения:
System.Security.Cryptography.CryptographicException: набор ключей не существует。
Ошибка источника:
Строка 53: использование (RSACryptoServiceProvider rsaProviderDecrypt = (RSACryptoServiceProvider) cerDecrypt.PublicKey.Key) Строка 54: {Строка 55: plainHashBytes = rsaProviderDecrypt.Decrypt (encryptedHashBytes, false); Строка 56: rsaProviderDecrypt.Clear (); Строка 57: rsaProviderDecrypt.Dispose ();
Исходный файл: E: PayUSite PayMvcApp Controllers HashMessageController.cs Строка: 55
Трассировки стека:
[CryptographicException: набор ключей не существует. ] System.Security.Cryptography.CryptographicException.ThrowCryptographicException (Int32 ч) +41 System.Security.Cryptography.RSACryptoServiceProvider.DecryptKey (SafeKeyHandle pKeyContext, Byte [] pbEncryptedKey, Int32 cbEncryptedKey, Boolean fOAEP, ObjectHandleOnStack ohRetDecryptedKey) System.Security.Cryptography.RSACryptoServiceProvider.Decrypt (Byte [] rgb, Boolean fOAEP) +579.
исходный код:
- возможный дубликат CryptographicException «Набор ключей не существует», но только через WCF
- 1 Я видел это раньше. Найдите «Набор ключей не существует» в разделе «Криптографическая совместимость: цифровые подписи». я считать есть пара открытых ручек. При сборке мусора общий ресурс очищается несколько раз (что не работает). Я бы внимательно посмотрел на (для шифрования обычно используются открытые ключи) и (для дешифрования обычно используются закрытые ключи). Думаю они убираются при выходе из блока .
Этот вопрос старый, но для тех, кто ищет решение, продолжая использовать и , вот как мне удается решить эту ошибку:
Основа моего сертификата была установлена неправильно, дважды щелкнув файл и выбрав магазин.
Неправильный способ установки сертификата
1. Дважды щелкните сертификат:

2. Откроется мастер, нажмите следующую кнопку:

3. Мастер покажет расположение сертификатов, нажмите следующую кнопку:

4. Введите пароль и нажмите «Далее»:

5. Выберите магазин и нажмите «Далее»:

6. Мастер покажет информацию о сертификате, щелкните в Конец кнопка

7. Отображается диалог успеха:

Итак, на этом этапе у меня была ошибка «Клавиатура не существует».
Чтобы решить эту проблему, я поступил следующим образом (правильный путь)
1. Запустите консоль управления Microsoft (mmc.exe):

2. Пустой экземпляр MMC показал:

3. Щелкните в File-> Add / Remove Snap-in …

4. Выберите оснастку сертификата, щелкнув добавлять кнопка:

5. Выбрать Учетная запись компьютера затем нажмите в следующий кнопка:

6. Выбрать Локальный компьютер затем нажмите в Конец кнопка:

7. Оснастка сертификата теперь добавлена, щелкните в в порядке кнопка:

8. Выберите личный магазин, затем щелкните правой кнопкой мыши и выберите импорт:

9. Просмотрите сертификат и нажмите «Далее»:

10. Введите пароль, затем щелкните следующий кнопка:

11. Автоматически выбрать хранилище сертификатов:

12. Информация о сертификате показывает:

13. В диалоговом окне успешного выполнения отображается:

14. Обновите консоль MMConsole, чтобы отобразить сертификат:

15. Щелкните сертификат правой кнопкой мыши, затем щелкните в Управление закрытыми ключами …:

16. Добавьте идентификатор пула или пользователя IIS, в моем случае я добавил IIS_IUSRS:

17. Пользователь добавлен, нажмите в порядке кнопка:

И все готово, клавиатура делает существовать сейчас!!
- 20 Вы могли бы значительно упростить свой ответ, сказав, что «у пользователя нет разрешений на закрытый ключ, поэтому вам необходимо предоставить ему разрешения». Решение не зависит от того, как вы импортируете сертификат (нет «правильного» или «неправильного» способа импорта). Спасибо за последний шаг в решении!
- 7 У меня тоже была эта проблема, и проблема заключалась в установке разрешений на сертификат! Спасибо за отличный ответ; скриншоты ftw!
- 2 Обычно это проблема с разрешениями. Вам необходимо предоставить разрешения на чтение учетной записи пользователя, под которой работает приложение / служба.
- 3 В моем случае установка сертификата из консоли MMC сработала. Установка двойным щелчком по файлу .PFX не выполнялась.
- 1 Позиции 15 и 16 являются важными.
Приложение может пытаться записать по следующему пути к папке: C: Documents and Settings All Users Application Data Microsoft Crypto RSA MachineKeys
Если ваше приложение использует олицетворение или пользователя IUSR_MACHINENAME, настройте параметры папки MachineKeys и предоставьте пользователю Read & Execute, List Folder Contents, Read, Write. Если это не сработает, попробуйте предоставить пользователю «Все» одинаковые разрешения.
- Я попытался предоставить разрешение на запись в каталог MachineKeys для «всех», но по-прежнему отображалось то же сообщение об ошибке.
- Насколько я понимаю, указанная выше папка MachineKeys имеет ограниченные разрешения по уважительной причине: она должна находиться под управлением операционной системы. Вы не должны иметь к нему доступ напрямую.
Я получил ту же ошибку, что и OP: «System.Security.Cryptography.CryptographicException: набор ключей не существует»
Разрешение (для меня) было: Visual Studio должна быть (запускаться как администратор)
Как мне объяснили (YMMV), VS необходимо запускать от имени администратора, чтобы извлечь закрытый ключ сертификатов из хранилища ключей, чтобы согласовать аутентификацию / рукопожатие с keyvault.
- Спасибо! Это «решило» это для меня. Единственная проблема в том, что я не могу запустить приложение от имени администратора.
- @PalleDue, ваше приложение не должно запускаться от имени администратора, его просто нужно запускать с учетными данными пользователя / службы, которые были авторизованы в сертификате, иначе вам может потребоваться переосмыслить архитектуру аутентификации ваших приложений. Это решение также может работать, если вы авторизуетесь для сертификата без запуска VS как администратора, в зависимости от того, где установлен сертификат.
Я считаю, что при использовании Encrypt и Decrypt он ожидает открытый ключ для шифрования и закрытый ключ для дешифрования. Таким образом, это не удается, потому что вы пытаетесь расшифровать без закрытого ключа, и это вызывает исключение.
Вам действительно следует использовать метод SignData для создания подписи и VerifyData для проверки.
- Получателей слишком много, и лучше, чтобы отправитель предоставил открытый ключ (для получателей) и закрытый ключ (для себя).
- Вы правы, я изменил свой код, чтобы использовать CreateSignature вместо шифрования, и это могло работать и давать правильный результат. Спасибо.:-)
Я столкнулся с той же проблемой. Сообщение не идеально, и в моем случае у моего пользователя не было разрешения на доступ к закрытому ключу. Вы можете исправить это, выполнив следующие действия:
- Открыть mmc
- Добавить оснастку сертификата
- выберите сертификат, который хотите использовать
- Щелкните его правой кнопкой мыши и выберите «Все задачи» / «Управление закрытыми ключами …»
- Добавьте своего пользователя в список авторизованных пользователей и разрешите «Полный доступ»
Попробуйте запустить vs от имени администратора. Работал на меня
Я столкнулся с этой ошибкой, когда не загружал PrivateKey из своего сертификата в SigningKey signedXmlElement при попытке подписать ответ SAML.
В моем случае закрытый ключ хранился в папке , а не в папке machinekeys — вы можете проверить с помощью certutil, чтобы узнать «Уникальное имя контейнера», которое будет закрытым ключом.
Теперь я просматриваю криптографический каталог, чтобы найти совпадение. С этим совпадением я могу установить правильный ACL для соответствующего файла



