Статус: Участник
Группы: Участники
Зарегистрирован: 22.02.2019(UTC) Сообщений: 10 Откуда: Иркутск
|
Здравствуйте пытаемся реализовать OAuth авторизацию по этому сценарию https://dss.cryptopro.ru...n/oauth/actas-token.htmlтестовый сервер для OAuth https://stenddss.cryptopro.ru/<....>/установлен Crypto Pro .Net версия 1.0.6893 в сценарии указано "Также необходимо указать операторский сертификат в качестве клиентского SSL/TLS сертификата, по нему будет осуществляться аутентификация оператора на ЦИ." взяли пример для запроса из SDK Код:
X509Certificate2 certificate = GetClientCertificate();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://stenddss.cryptopro.ru/<...>/oauth/authorize/certificate?client_id=<...>&response_type=code&scope=dss&redirect_uri={urn:ietf:wg:oauth:2.0:oob:auto}&resource=urn:cryptopro:dss:signserver:signserver");
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.Credentials = CredentialCache.DefaultCredentials;
request.ClientCertificates.Add(certificate);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (request.ServicePoint.Certificate != null)
{
Console.WriteLine("Сертификат сервера:");
X509Certificate c = request.ServicePoint.Certificate;
Console.WriteLine("Имя:" + c.Subject.ToString());
Console.WriteLine("Издатель:" + c.Issuer.ToString());
Console.WriteLine("Алгоритм ключа:" + c.GetKeyAlgorithm().ToString());
}
Console.WriteLine("Размер содержимого {0}", response.ContentLength);
Console.WriteLine("Тип содержимого {0}", response.ContentType);
// Получаем поток ассоциированный с ответом.
Stream receiveStream = response.GetResponseStream();
// создаем высокоуровневый поток с требуемой кодировкой.
StreamReader readStream = new StreamReader(receiveStream, Encoding.Default);
Console.WriteLine("Поток ответа успешно получен.");
Console.WriteLine(readStream.ReadToEnd());
response.Close();
readStream.Close();
на строчке HttpWebResponse response = (HttpWebResponse)request.GetResponse(); происходит исключение System.Net.WebException: 'The request was aborted: Could not create SSL/TLS secure channel.' версия .NET Framework 4.6.1 GetClientCertificate() возвращает операторский сертификат у которого в свойствах алгоритм шифрования указан ГОСТ, приватный ключ так же присутствует, имеет тип CryptoPro.Sharpei.Gost3410CryptoServiceProvider похоже что во время установки защищенного соединения происходит какая то ошибка с алгоритмами шифрования, что ещё нужно настроить/установить чтобы можно было выполнять запросы для OAuth авторизации?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Добрый день!
На stenddss ГОСТ-сертификат веб-сервера настроен на порту 4430, попробуйте прописать этот порт в запросе.
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.02.2019(UTC) Сообщений: 10 Откуда: Иркутск
|
спасибо! указали порт и соединение удалось установить
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close