ahtoh |
|
Статус: Участник Группы: Участники
|
Ubuntu 12.04 Сначало я получаю список всех контейнеров у которых есть закрытый ключ и есть сертификат ему соответсвующий, затем я сохраняю сертификат в виде байтового массива Код:
После этого где то в другом месте происходит попытка получить контекс провайдера для закрытого ключа по его сертификату Код:
CryptAcquireCertificatePrivateKey возвращает 0, GetLastError возвращает 0x80090020 Я знаю, что для Windows этот код работает только если установить личный сертификат из контейнера, но даже без установленного сертификата на Windows код ошибки возвращался более осмысленный. Скажите пожалуйста где я не прав и/или что мне нужно сделать что бы это заработало. Отредактировано пользователем 16 января 2013 г. 15:00:29(UTC) |
|
|
Максим Коллегин |
|
Статус: Сотрудник Группы: Администраторы Сказал «Спасибо»: 21 раз |
Открывать криптопровайдер по сертификату без связи с закрытым ключом — плохая идея. На Windows работает из-за магических key identifier — на Linux мы это не реализовывали. |
Знания в базе знаний, поддержка в техподдержке |
|
|
WWW |
ahtoh |
|
Статус: Участник Группы: Участники
|
На Windows в CAPI есть метод CryptFindCertificateKeyProvInfo, на Linux я его не нашел, подскажите пожалуйста как мне его реализовать. |
|
|
Максим Коллегин |
|
Статус: Сотрудник Группы: Администраторы Сказал «Спасибо»: 21 раз |
Перечислить криптопровайдеры, в каждом криптопровайдере перечислить контейнеры и сравнить открытые ключи. |
Знания в базе знаний, поддержка в техподдержке |
|
|
WWW |
miser |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 1 раз |
Продолжу тему. Цитата: $ ./certmgr -list ============================================================================= [ErrorCode: 0x00000000] Попытка получить название контейнера выдает ошибку «The parameter is incorrect.» Код:
Неужели, надо бегать через получение списка всех контейнеров? CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, pbData, &cbData, dwFlags) |
|
|
Андрей Писарев |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Цитата: (BYTE *)pbData — ? сначала null, чтобы узнать размер, Отредактировано пользователем 25 марта 2013 г. 16:35:20(UTC) |
Техническую поддержку оказываем тут |
|
|
WWW |
miser |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 1 раз |
Спасибо, частично разобрался. Получаю сертификат из контейнера: Цитата: $ ./certmgr -list -cont ‘HDIMAGE\RaUser-8.0002EA1’ ============================================================================= Тестирую контейнер: Цитата: $ ./csptest -keyset -cont ‘HDIMAGE\RaUser-8.0002EA1’ –check Интересно, показывает, что ключа для подписи нет. Цитата: $ /opt/cprocsp/bin/amd64/csptestf -sfsign -sign -in test.xml -out test.p7b -add -my ‘Тест Тестович Тестов’ A CSP has been acquired. На предыдущем шаге, другой компонент показал, что ключа для подписи нет! JCP показывает, что сертификат используется для подписывания и авторизации. Пишу на С код Код:
На последней строке падает ошибка Цитата: Error number : 0x8009000d Вопрос. Почему csptest и мой код не дают подписывать данные, а csptestf и JCP подписывают? |
|
|
Андрей Писарев |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
вместо AT_SIGNATURE использовать Exchange … |
Техническую поддержку оказываем тут |
|
|
WWW |
miser |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 1 раз |
В данном примере, это выход. Код:
Как-то не очень. В примерах производителя такого грязного кода нет. |
|
|
Андрей Писарев |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Автор: miser В данном примере, это выход. Код:
Как-то не очень. В примерах производителя такого грязного кода нет. Почему грязного? Отредактировано пользователем 26 марта 2013 г. 13:48:58(UTC) |
Техническую поддержку оказываем тут |
|
|
WWW |
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Pichugin |
|
Статус: Новичок Группы: Участники
|
Добрый день. Работаю с ГИС ЖКХ. КриптоПро версии 4.0.9969 используется для подписания запросов, а stunnel из комплекта КриптоПро для установки защищенного соединения. Изначальный конфиг stunnel Для него выдает ошибку **** Error 0x80090304 returned by AcquireCredentialsHandle Нашел на форуме совет добавить в конфиг строчку pincode=12345678 Прошу совета в решении возникшей проблемы. |
|
|
Pichugin |
|
Статус: Новичок Группы: Участники
|
Все еще не могу решить проблему. Прошу помощи. Использую Windows 7, служба stunnel запускается от имени того же пользователя, под которым установлен сертификат. Файл конфигурации stunnel: Код:
При использовании stunnel.x64.exe возникает ошибка При использовании stunnel-msspi.exe возникает ошибка Лог файл для stunnel-msspi.exe: Код:
|
|
|
Михаил Селезнёв |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 3 раз |
Добрый день! |
|
|
pavlovskiy.an |
|
Статус: Новичок Группы: Участники
|
Добрый день! Аналогичная проблема, после истечения срока сертификата тензора с заменой на ФНС, такая вот история 2022.11.07 19:32:19 LOG7[4220:4304]: https accepted FD=144 from 127.0.0.1:57080 Нашлось решение? |
|
|
Pichugin |
|
Статус: Новичок Группы: Участники
|
Мне в конце концов помог переход на windows 10 и КриптоПро 5. |
|
|
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Автор: pavlovskiy.an Добрый день! Аналогичная проблема, после истечения срока сертификата тензора с заменой на ФНС, такая вот история 2022.11.07 19:32:19 LOG7[4220:4304]: https accepted FD=144 from 127.0.0.1:57080 Нашлось решение? CryptAcquireCertificatePrivateKey failed. Error = 0x80090016 А что Вы сделали после получения нового сертификата? Просто заменили файл с сертификатом? Его необходимо установить через панель управления КриптоПРО CSPСервисУстановить личный сертификат… |
Техническую поддержку оказываем тут |
|
|
WWW |
pavlovskiy.an |
|
Статус: Новичок Группы: Участники
|
Конечно серт установлен в личные и экспортирован в директорию стунеля. Стунель крутится на отдельном скл и сервере1с (rphost), к которому пользователи не подключаются, а работают в терминале, на котором просто 1с предприятие, т.е два сервера. Связать с контейнером можно, если он в реестре или на флэшке/рутокене подсоединённом к машине с стунелем. Т.к. ключ ФНС можно только ставить и работать, скопировать его нельзя — в этом была вся засада. Проблему решил. Можно вопрос закрыть. |
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
I’ve created a self-signed certificate in Key Vault using the managed certificates features there and am trying to use that certificate in my fabric application. This smells similar to #235 but the HRESULT is different (0x80090016 instead of 0x80090014). I see the following in my event log:
- Event 256: Can’t get private key filename for certificate. Error: 0x80090016
- Event 257: All tries to get private key filename failed.
- Event 256: CryptAcquireCertificatePrivateKey failed. Error:0x80090016
- Event 256: Failed to get the Certificate’s private key. Thumbprint:E2ADCA7A99BE1481EF4AE0020B0D23AE43C62E68. Error: E_FAIL
- Event 256: Failed to get private key file. x509FindValue: E2ADCA7A99BE1481EF4AE0020B0D23AE43C62E68, x509StoreName: My, findType: FindByThumbprint, Error E_FAIL
- Event 23041: ACLing private key filename for thumbprint E2ADCA7A99BE1481EF4AE0020B0D23AE43C62E68. ErrorCode=E_FAIL
Repro steps
- Create a new self-signed certificate using the managed certificate features of Key Vault
- Export the certificate from Key Vault using
Get-AzureKeyVaultSecret
- Import the certificate into cert:/LocalMachine/My
- Create an application that relies on the certificate via
<SecretsCertificate>
in ApplicationManifest.xml - Deploy the application
- Application fails to provision/start on the cluster
Things I’ve tried
- When imported to LocalMachine/My from Key Vault, it is using «Microsoft Enhanced RSA and AES Cryptographic Provider» so I converted it to use «Microsoft Enhanced Cryptographic Provider v1.0». This didn’t help. The same errors show up in the event log.
- Executing my code as an administrator outside the context of a service fabric application. This works; my code is able to load the cert and use it for AAD authentication. At least I know the cert was generated properly.
- Running the service as LocalSystem and not referencing the cert in ApplicationManifest.xml. This doesn’t work; the service is unable to get the private key when it comes time to do so.
- Manually ACL’ing the cert to allow access to the private key to
NETWORK SERVICE
(using mmc.exe), running the service as NetworkService and not referencing the cert in ApplicationManifest.xml. This doesn’t work; the service is unable to get the private key when it comes time to do so. - Manually ACL’ing the cert to allow access to the private key to
LOCAL SERVICE
(using mmc.exe), running the service as LocalService and not referencing the cert in ApplicationManifest.xml. This doesn’t work; the service is unable to get the private key when it comes time to do so.
Ошибка 0x80090016 «Неправильный зарегистрированный набор ключей» или ошибка обращения к контейнеру закрытого ключа «Набор ключей не существует» может появиться по различным причинам. У нас она появилась после обновления КриптоПро с 4 до 5 версии на MacOS. В этой статье мы расскажем, как устранить эту ошибку. Думаем, наши инструкции будут актуальны как для пользователей MacOS, так и для Windows. Если у вас не получается устранить данную ошибку, то рекомендуем обратиться к нашим специалистам за помощью.
- Извлеките носитель с ЭЦП из устройства. Это необходимо, чтобы исключить влияние носителя ЭЦП и закрытого контейнера с ключами на работу КриптоПро.
- Удалите установленный сертификат ЭЦП, с которым возникает проблема, из личного хранилища сертификатов.
- Вставьте носитель с ЭЦП в устройство. Иногда может возникать проблема с отображением контейнера в КриптоПро. В этом случае извлеките носитель с ЭЦП и вставьте в другой порт устройства.
- Установите сертификат вашей электронной подписи повторно.
Как установить сертификат электронной подписи? Инструкция.
Если сертификат ЭЦП удалили, а установить повторно не получается.
В большинстве случаев после указанных действий ошибка 0x80090016 «Неправильный зарегистрированный набор ключей» или ошибка обращения к контейнеру закрытого ключа «Набор ключей не существует» отображаться не будет. Однако если ошибка преследует вас, можно полностью удалить КриптоПро и установить его заново.
Как удалить КриптоПро и следы его использования из реестра Windows?
Если ошибка 0x80090016 продолжает появляться и ничего не помогло.
Ошибка 0x80090016 может возникнуть у пользователей, когда они пытаются настроить PIN-коды Windows 10 или войти с ними. В сообщении об ошибке говорится:
Нам не удалось установить ваш PIN-код. Иногда полезно попробовать еще раз или вы можете пропустить это сейчас и сделать это позже.
Если вам нужно исправить это, чтобы настроить PIN-код в Windows 10, ознакомьтесь с этими потенциальными решениями для ошибки 0x80090016.
Основной причиной возникновения этой ошибки является определенная системная папка, которая может быть повреждена и заблокировать настройку PIN-кода на вашем устройстве.
Многие пользователи сообщали о соответствующих сообщениях об ошибках, когда пытались получить доступ или установить пароль для своих учетных записей Microsoft.
Что такое код ошибки 0x80090016?
Сообщение об ошибке 0x80090016 появляется на устройствах Windows, когда вы пытаетесь установить защитный PIN-код и заблокировать свое устройство.
Эта конкретная проблема также может возникнуть при использовании Microsoft Store и попытке войти в свою учетную запись.
Вы можете столкнуться с проблемой такого типа после выполнения системных обновлений на своем ПК и повреждения папки NGC.
Эта проблема может оставить ваш компьютер незащищенным от любого пользователя, который приблизится к вашему устройству, и, таким образом, поставить под угрозу ваши личные данные.
Как исправить ошибку Windows 0x80090016?
1. Запустите проверку системных файлов
- Сначала попробуйте выполнить сканирование с помощью средства проверки системных файлов. Нажмите Windows + R, чтобы запустить Run.
- Введите cmd в поле «Выполнить».
- Нажмите комбинацию Ctrl + Shift + Enter, чтобы открыть командную строку с повышенными привилегиями.
- Хотя это и не всегда необходимо, рекомендуется сначала запустить сканирование образа развертывания. Для этого введите:
DISM.exe /Online /Cleanup-image /Restorehealth
- Нажмите «Ввод».
- Затем введите sfc /scannow в командной строке и нажмите клавишу Enter.
- Подождите, пока сканирование SFC сделает свое дело, а затем перезапустите Windows, если оно восстанавливает файлы.
2. Очистите папку NGC
Очистка папки NGC, владельцем которой вы должны стать, является одним из наиболее подтвержденных исправлений ошибки 0x80090016.
- Сначала нажмите комбинацию Windows + E key, которая открывает проводник. Установите флажок «Скрытые элементы» на вкладке «Вид».
- Затем откройте путь к этой папке в Проводнике: C: > Windows > ServiceProfiles > LocalService > AppData > Local > Microsoft.
- Затем щелкните правой кнопкой мыши папку NGC, чтобы выбрать «Свойства».
- Выберите вкладку «Безопасность» в открывшемся окне.
- Нажмите «Дополнительно», чтобы открыть окно, показанное на снимке экрана ниже.
- Затем нажмите «Изменить», чтобы открыть окно «Выбор пользователя или группы».
- Введите имя учетной записи пользователя для той, в которую вы вошли в данный момент.
- Нажмите кнопку Проверить имена.
- Нажмите кнопку ОК.
- Выберите параметр Заменить владельца подконтейнеров и объектов.
- Выберите опцию Применить.
- Нажмите OK, чтобы закрыть окно.
- Откройте подпапку NGC.
- Нажмите Ctrl + A, чтобы выбрать все его содержимое.
- Нажмите кнопку «Удалить» на вкладке «Главная».
3. Включите Включить удобный вход с помощью PIN-кода.
Пользователи могут исправить ошибку 0x80090016 с помощью редактора групповой политики в Windows 10 Pro и Enterprise.
- Для этого введите gpedit.msc в «Выполнить»; и нажмите кнопку ОК.
- Разверните узел Конфигурация компьютера на панели навигации редактора групповой политики.
- Затем нажмите «Административные шаблоны», «Система» и «Вход в систему» в левой части окна.
- Дважды щелкните Включить удобный вход с помощью PIN-кода на правой панели в редакторе групповой политики.
- Выберите переключатель Включено.
- Нажмите кнопку Применить, чтобы сохранить настройку.
- Нажмите кнопку OK, чтобы выйти из окна.
4. Откат Windows
Ошибка 0x80090016 также может быть связана с недавно установленным сторонним программным обеспечением, которое вы удаляете, восстанавливая Windows до точки восстановления. Для этого ознакомьтесь с публикацией о восстановлении системы, в которой содержатся рекомендации по откату Windows.
Выбор точки восстановления, которая идет дальше, скорее всего, устранит ошибку, так как будет удалено больше программного обеспечения.
Это некоторые из подтвержденных разрешений, с которыми пользователи исправили ошибку PIN-кода 0x80090016. Таким образом, приведенные выше решения обычно решают проблему.
Обратите внимание, что приведенные выше разрешения не относятся к ошибке Microsoft Store, которая имеет тот же код 0x80090016.
Дайте нам знать, какие из них работали лучше всего для вас, оставив нам сообщение в разделе комментариев ниже.