Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
Доброго времени суток!
В службе windows для доступа к rest сервису необходимо использовать сертификат. Этот сертификат находится в контейнере, у которого установлен пароль. При обращении к rest сервису в коде : request.GetResponse() у меня должно появляться окошко, с запросом пароля на контейнер. Но поскольку это служба windows, окошко не отображается. Подскажите, как это можно обойти или как задать пароль програмно в C#?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
Пытаюсь использовать такой код:
// Получаю сертификат по серийному номеру X509Store store = new X509Store(StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); var certColl = store.Certificates.Find(X509FindType.FindBySerialNumber, CertificatePath, false); if (certColl.Count != 1) throw new Exception(String.Format("One certificate expected. Found {0} certificates.", certColl.Count)); _restCertificate = certColl[0];
// Получаю имя контейнера AsymmetricAlgorithm asym = _restCertificate.PrivateKey; ICspAsymmetricAlgorithm iasym = asym as ICspAsymmetricAlgorithm; CspKeyContainerInfo info = iasym.CspKeyContainerInfo; string s = info.KeyContainerName;
// Пытаюсь указать пароль для контейнера CspParameters cspParameters = new CspParameters(); cspParameters.ProviderType = 75; cspParameters.KeyContainerName = s;
// Задаю пароль. var str = new SecureString(); str.AppendChar('p'); str.AppendChar('a'); str.AppendChar('r'); str.AppendChar('o'); str.AppendChar('l'); cspParameters.KeyPassword = str; Gost3410CryptoServiceProvider prov = new Gost3410CryptoServiceProvider(cspParameters);
// Хочу получить сертификат из контейнера. Но получаю null. Притом, если парль не стоит и я его не указываю, то всеравно получаю null _restCertificate = prov.ContainerCertificate;
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
А в этом контейнере есть сертификат? Это можно посмотреть через панель КриптоПро CSP. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
точно есть. тем более, в приведенном коде, я вначале ищу сертификат и уже от него получаю имя содержащего его контейнера.
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
В коде Вы ищете сертификат в хранилище. Через панель КриптоПро CSP убедились в наличии сертификата? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
да, в хранилище. и после этого получаю от него имя контейнера. Я так понимаю, что это должно означать, что контейнер будет содержать этот сертификат. через панель убедился, сертификат присутствует в контейнере.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
Подскажите еще, я правильно пароль задаю для контейнера? Немного странно, что он задается посимвольно)
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
nex-54 написал:Подскажите еще, я правильно пароль задаю для контейнера? Немного странно, что он задается посимвольно) C SecureString по-другому нельзя. |
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
nex-54 написал:да, в хранилище. и после этого получаю от него имя контейнера. Я так понимаю, что это должно означать, что контейнер будет содержать этот сертификат. Не означает. nex-54 написал:через панель убедился, сертификат присутствует в контейнере. Проблему поисследуем. Попробуйте другой способ предварительного открытия контейнера с паролем - один из описанных здесь (вопрос Как подписывать CMS сообщение при помощи секретных ключей, которые имеют пароль). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2011(UTC) Сообщений: 60 Откуда: Ekaterinburg Сказал «Спасибо»: 1 раз
|
Спасибо за помощь, попробую еще варианты. использую CryptoPro Csp: Core version 3.6.5359 KC1, Product version 3.6.6756
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close