wcf и приватный ключ

Добрый день!
   Подскажите, пожалуйста, куда посмотреть. Скорее всего вопрос по технологии и из области "можно ли сделать таким образом".  Перед заказчиком встала задача подписывать сообщения сертификатом, передаваемые на внешний wcf сервис. Кто-то предоставил ему сертификат криптопро на рутокене. Сертификат выдан не для этих целей, но заказчик утверждает, что мы должны именно его использовать. Настройки клиента проводились в app.config и там собственно указываем, что подписываем сертификатом:

<security mode="Message">
            <message clientCredentialType="Certificate" negotiateServiceCredential="true" algorithmSuite="Default" />
          </security>

При попытке отправить сообщение, происходит следующая ошибка:

Возможно, что сертификат "такой-то" не имеет закрытого ключа, который может использоваться для обмена ключами, или у процесса нет прав доступа к закрытому ключу. Дополнительные сведения см. в тексте внутреннего исключения.
в Inner Exception - Неправильный зарегистрированный набор ключей.

Сертификат находится в хранилище сертификатов, а закрытый ключ лежит на rutokene. При обращении к другому сертификату хранящему закрытый ключ к примеру в реестре, подобных проблем не происходит. Лично я сомневаюсь, что возможно подписывать сообщения от сервисов с  rutokenа, т.к. должен быть запрос пин кода. Наш клиент это winservice.
Подскажите как организовать работу. Буду благодарен за пример или ссылку.

Re: wcf и приватный ключ

Подскажите, пожалуйста, как сертификат попал в личное хранилище сертификатов?
Возможно, он не имеет привязку к контейнеру. Можно попробовать установить сертификат из контейнера на Рутокене с помощью плагина КриптоПро.
Сертификат с закрытым ключем в реестре - он также от КриптоПро?

Re: wcf и приватный ключ

Ирина Богданова пишет:

Подскажите, пожалуйста, как сертификат попал в личное хранилище сертификатов?
Возможно, он не имеет привязку к контейнеру. Можно попробовать установить сертификат из контейнера на Рутокене с помощью плагина КриптоПро.

Хороший вопрос, как он попал в личное хранилище :). Мне сказали, что он находится там. И действительно, я его там нахожу. :) В Криптопро CSP в разделе Сервис можно просмотреть сертификаты в контейнере. Я нахожу контейнер и сертификат в нем. Ошибок нет. Там же присутствует кнопка "Протестировать". Я нахожу контейнер закрытого ключа и мастер сообщает, что ошибок не обнаружено. Правда есть одно но. Утилита rtCert.exe не показывает ни контейнеров ни чего. Пишет только общую информацию.

Re: wcf и приватный ключ

Там же в КриптоПро в просмотре сертификатов есть кнопка "Установить сертификат", по которой сертификат помещается в личное хранилище. Попробуйте её использовать.
А тот сертификат c ключами в реестре, с которым всё работает, - они от КриптоПро CSP?
rtCert работает только с контейнерами, которые записаны с помощью нашего криптопровайдера. Контейнеры КриптоПро эта утилита не должна видеть.

Re: wcf и приватный ключ

Там же в КриптоПро в просмотре сертификатов есть кнопка "Установить сертификат", по которой сертификат помещается в личное хранилище. Попробуйте её использовать.

Да, сертификат устанавливался через эту кнопку.

А тот сертификат c ключами в реестре, с которым всё работает, - они от КриптоПро CSP?

Да, это тестовый сертификат от КриптоПро.
У меня полная уверенность, что при попытке подписи, происходит обращение к закрытому ключу на носителе. В этот момент и происходит ошибка.

Re: wcf и приватный ключ

Работа с токеном осуществляется через КриптоПро. Возможно, в данном случае работа ведётся в режиме, в котором ввод PIN-кода должен осуществляться программно. Вам необходимо обратиться непосредственно в КриптоПро за помощью.

Re: wcf и приватный ключ

Спасибо.