Статус: Участник
Группы: Участники
Зарегистрирован: 09.02.2009(UTC) Сообщений: 14 Откуда: Россия
|
Доброго времени суток! Возникла проблема, может кто подскажет пути решения? Дело в следующем:
Как уже было сказано, вызов производится из контекста сервиса. Сертификат соответственно установлен в хранилище Apache2\My, то есть зашифровать все получается, сертификат находится. При дешифровке данных вызов функции CryptFindCertificateKeyProvInfo(pReceiver, 0/*CRYPT_FIND_USER_KEYSET_FLAG*/, NULL) неудачен при любом флаге(закомментирован). Ошибка 0x8009000D (ключ не существует). pReceiver - это найденый в хранилище сертификат. То есть хранилище сервиса открывается, сертификат находится, но... При этом при просмотре через mmc говорится, что есть закрытый ключ, соответствующий данному сертификату!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
в общем случае зашифрование можно произвести и без сертификата отправителя: то, что зашифрование проходит говорит не слишком о многом.
а в mmc сертификат виден в сертификатах пользователя или в сертификатах локального компьютера? если в сертификатах пользователя, от уточните от чьего имени запускаете mmc.
если запускаете просто от имени залогиненного пользователя, наличие там сертификата опять же не говорит о том, что он будет доступен сервису. |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 09.02.2009(UTC) Сообщений: 14 Откуда: Россия
|
В моем случае это говорит, ведь весь исходный код я писал сам, и то, что сертификат ищется и находится, уверен. Проблема оказывается вот в чем: В Windows хранилища делятся на три категории - пользовательские, компьютера, сервисов(служб). В моем случае шифрование проходило под пользователем, а дешифрование - под службой. На вашем тестовом сайте, как я понял, нельзя установить сертификат для сервиса. И в то же время вы решили не давать возможности экспортировать сертификат с закрытым ключом(???). Таким образом, сертификат установился под пользователя и под ним работал нормально. Под службой(даже если экспортировать его в соответствующее хранилище) - соответственно фигвам. :) Кстати, интересная особенность - если сертификат в консоли mmc скопировать из одного хранилища в другое с помощью обычного "копи-паст"(а это оснастка позволяет!), то в итоге в обоих хранилищах у сертификата будет "есть закрытый ключ". Если же как положено - экспорт-импорт, то во втором случае уже нет.:) В общем, решение пока только одно - устанавливать сертификат в хранилище копмпьютера..
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:В общем, решение пока только одно - устанавливать сертификат в хранилище копмпьютера.. Совершенно верно. Кстати, аналогичным решением пользуется, например, IIS. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close