Статус: Новичок
Группы: Участники
Зарегистрирован: 01.03.2018(UTC) Сообщений: 8
|
При запуске сервиса под системой (local system) в момент выполнения функции SignedXml.ComputeSignature() происходит простой равный времени ожидания ввода в крипто про (при этом никаких окон от крипто про нет) и по завершении выдает эксепшен "действие отменено пользователем". При запуске от текущего пользователя все ок. Есть у кого-то опыт решения подобной проблемы? И почему крипто про не выдает никаких окон в данной ситуации (когда подключался по РДП в этом же скрипте окошо "вставьте ключевой носитель" высвечивалось, никаких флагов запрещающих окна нет, просто не понятно что он хочет, мб пароль, мб что-то еще). Права доступа для системы через оснастку сертификатов не выставляются, точнее не сохраняются. А на пользователе, на котором все работает их вообще там нет. Это проблема с правами? И что может быть еще? Буду благодарен за любой имеющий отношение к делу ответ.
ps: ничего похожего на форуме не нашел.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Здравствуйте. Возникает диалоговое окно. Варианты: а) пароль б) переход на ГОСТ-2012\предупреждение о 2001, если у Вас актуальные версии CSP (3.9\4.0) в) нет прав на доступ г) нет ссылки\связи с контейнером Вы протестировали сертификат через Сервис\Протестировать\По сертификату от учетной записи компьютера (Рис. 34)? Есть пароль на контейнере? Инструкция, раздел 2.5.1 + Использование секретных ключей в службах Windows (IIS, etc)>ps: ничего похожего на форуме не нашел. p.s. это не раз обсуждалось |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Higen И почему крипто про не выдает никаких окон в данной ситуации (когда подключался по РДП в этом же скрипте окошо "вставьте ключевой носитель" высвечивалось, никаких флагов запрещающих окна нет, просто не понятно что он хочет, мб пароль, мб что-то еще). Где сохранен контейнер, сертификат корректно установлен? Почему не понятно, что от Вас требует CSP? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.03.2018(UTC) Сообщений: 8
|
Сертификат тестируется успешно, установлен в личные локальной машины и пользователя, сам контейнер на жестком диске (также тестировал с сертификатом хранящимся в реестре, результат тот же). Сертификат рабочий, т.к. при запуске сервиса от пользователя все работает корректно и документы подписываются, а при запуске от local system вылетает на computesignature() несмотря на то, что сертификат определяется, privatekey получает без проблем. Непонятно что требует CSP потому что при отработке computesignature() вылетает ошибка "Действие отменено пользователем", ровно через тот промежуток времени, который установлен в КриптоПро на вкладке "Дополнительно", как-будто было окошко ввода пароля и я нажал отмена, но окон при этом нет. Статью про использование секретных ключей читал не раз, права доступа через оснастку для пользователей не сохраняются (при нажатии на кнопку принять все возвращается в исходное состояние, на формуе нашел старую тему на форуме, что крипто про это не поддерживает и права нужно настраивать в реестре (кстати в реестре в keys всего 1 запись Имя "(по умолчанию)" тип Reg_SZ), в реестре права проставил. Единственное что dwFlags: 0x00000000, а не dwFlags: 0x00000020, радио Компьютера не активно. Версия крипто про 4.0.98.42 Версия ядра СКЗИ 4.0.9014 КС1 Установлен на Windows Server 2008 R2 Standart Я так понимаю, что если сертификат при запуске сервиса от пользователя доступен и подпись рассчитывается, то установлен он корректно, но при запуске от системы уже ничего не выходит. Пароль есть, он сохранен. Спасибо за ответ, если есть еще советы жду с нетерпением) Отредактировано пользователем 22 марта 2018 г. 21:20:07(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Higen Сертификат тестируется успешно, установлен в личные локальной машины и пользователя, сам контейнер на жестком диске (также тестировал с сертификатом хранящимся в реестре, результат тот же). Сертификат рабочий, т.к. при запуске сервиса от пользователя все работает корректно и документы подписываются, а при запуске от local system вылетает на computesignature() несмотря на то, что сертификат определяется, privatekey получает без проблем.
Непонятно что требует CSP потому что при отработке computesignature() вылетает ошибка "Действие отменено пользователем", ровно через тот промежуток времени, который установлен в КриптоПро на вкладке "Дополнительно", как-будто было окошко ввода пароля и я нажал отмена, но окон при этом нет.
Статью про использование секретных ключей читал не раз, права доступа через оснастку для пользователей не сохраняются (при нажатии на кнопку принять все возвращается в исходное состояние, на формуе нашел старую тему на форуме, что крипто про это не поддерживает и права нужно настраивать в реестре (кстати в реестре в keys всего 1 запись Имя "(по умолчанию)" тип Reg_SZ), в реестре права проставил. Единственное что dwFlags: 0x00000000, а не dwFlags: 0x00000020, радио Компьютера не активно.
Версия крипто про 4.0.98.42 Версия ядра СКЗИ 4.0.9014 КС1 Установлен на Windows Server 2008 R2 Standart
Я так понимаю, что если сертификат при запуске сервиса от пользователя доступен и подпись рассчитывается, то установлен он корректно, но при запуске от системы уже ничего не выходит.
Пароль есть, он сохранен.
Спасибо за ответ, если есть еще советы жду с нетерпением) Что означает "не активно"? Вы тестировали как тогда сертификат? и как устанавливали сертификат? Тестировать необходимо контейнер компьютера (переключить на него, перед выбором сертификата), а не пользователя. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Higen Пароль есть, он сохранен. Под пользователем видимо, так? А сертификат перетянули вручную через консоль в личные компьютера? В итоге что имеем? Под пользователем - есть сохраненный пароль на контейнер, пароль доступен только пользователю Под системной записью - появляется в службе диалог на ввод пароля, т.к. учетная запись не имеет сохраненный пароль на этот контейнер. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.03.2018(UTC) Сообщений: 8
|
Автор: Андрей Писарев Что означает "не активно"? На него не переключиться, . Да, видимо пароль только под пользователем, а диалоговых окон нет, т.к. это сервис. А как пароль и под системой сохранить?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Higen Автор: Андрей Писарев Что означает "не активно"? На него не переключиться, . Да, видимо пароль только под пользователем, а диалоговых окон нет, т.к. это сервис. А как пароль и под системой сохранить? На вкладке Общие - есть ссылка для запуска под администратором. Заодно увидите какое возникает окно (пароль) |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.11.2010(UTC) Сообщений: 1,089
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 149 раз в 134 постах
|
Есть сервис "Обнаружение интерактивных служб" (UI0Detect), которая по умолчанию не запущена. Разрешите вашему сервису взаимодействие с рабочим столом, запустите эту службу и тогда, по логике, запрос от вашего сервиса отобразится и можно будет задать (и сохранить) пароль.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.03.2018(UTC) Сообщений: 8
|
Спасибо за ответы. На тестовом контуре заработало. На рабочем стоит крипто про 3,6777 При попытке запустить тот же сервис выдает: System.Security.Cryptography.CryptographicException: Неправильный параметр набора ключей.
at CryptoPro.Sharpei.CPUtils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) at CryptoPro.Sharpei.CPUtils.GetKeyPairHelper(CPCspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandleCP& safeProvHandle, SafeKeyHandleCP& safeKeyHandle) at CryptoPro.Sharpei.Gost3410CryptoServiceProvider.GetKeyPair() at CryptoPro.Sharpei.Gost3410CryptoServiceProvider..ctor(CspParameters parameters) at CryptoPro.Sharpei.NetDetours.CPX509Certificate2.get_PrivateKey() at ImportExportBaseClass.CryptoProNet.SignSmevRequest.SignXmlFile(Stream& fromStream, Stream& toStream, String sCSPSerial, String CSPPathPfx, String sLogFileName, String sXmlWithCspFilePath, String sSmevVersion)
Принципиальное отличие это другая версия КриптоПро и на рабочем контуре контейнер находится на ключевом носителе (флешка), драйвер eTokken PKI client.
Тестирование проходит и от пользователя и от компьютера. Сервис запускаю от пользователя.
При работе в приложении все подписывается отлично, но там другая проблема после некоторого количества подписаний (обращений к контейнеру) он исчезает, КриптоПро его больше не видит, пока не перезапустишь приложение. Поэтому собственно и начал делать сервис, т.к. в приложении там много чего кешируется и не понятно почему криптопро перестает видеть контейнер.
При запуске от системы на рабочем контуре (включил UIODetect, спасибо за совет) ввел пин и вроде все заработало.
Вообщем много странного.
Спасибо за советы!!!
ps: про неправильный параметр набора ключей темки на форуме нашел.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close