Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
После установки КриптоПро CSP 3.6 R4 перестали работать https-соединения в .NET
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
Проблема наблюдается именно из приложения .NET Во всех браузерах соединение устанавливается нормально. Основные признаки: соединение устанавливается, приложение начинает загружать процессор ~25-50% и начинает расти потребление памяти до out of memory. Получить ответ от сервера не удается. https c серверным сертификатом RSA. После деинсталляции КриптоПро проблема исчезает.
В какую сторону надо копать?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
Спасибо за обратную связь, а можно примерчик для воспроизведения? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
А какой именно пример надо? Если пример кода, то он самый обычный: Код:
class Program
{
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
{
return false;
};
Console.WriteLine("Send query...");
try
{
WebClient client = new WebClient();
client.DownloadString("https://<любой https-адрес/");
}
catch (Exception exception)
{
Console.WriteLine("Exception: {0}", exception.ToString());
}
Console.ReadLine();
}
}
Да, проблема решилась downgrad'ом на версию R2.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
Revocation Provider устанавливали? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
Ставилось все по умолчанию. На сколько я понял инсталлятор не дает выбирать компоненты при обновлении старой версии на новую. По крайней мере в R4. Возможно Revocation Provider и был установлен, но к сожалению проверить это в данный момент не могу.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 9,890   Сказал «Спасибо»: 364 раз Поблагодарили: 1431 раз в 1105 постах
|
Автор: maxdm  Revocation Provider устанавливали? Автор: naa  https c серверным сертификатом RSA. После деинсталляции КриптоПро проблема исчезает.
В какую сторону надо копать?
Спрошу и здесь: а зачем? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
Что "зачем"? Зачем обновляли старую версию КриптоПро на новую?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
У меня пока не получилось воспроизвести. Другие криптографические продукты установлены? Отредактировано пользователем 11 февраля 2014 г. 11:55:29(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
Нет, только КриптоПро CSP 3.6 R4. Система: Windows 7 Professional 64x
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 9,890   Сказал «Спасибо»: 364 раз Поблагодарили: 1431 раз в 1105 постах
|
Автор: naa  Что "зачем"? Зачем обновляли старую версию КриптоПро на новую? Вопрос был не к Вам. Интересует зачем ставить Revocation Provider при использовании RSA и о его влиянии на https в .NET |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
Попробовал и x64 и обновление с перезагрузкой R2 на R4 - не воспроизводится... |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
У меня это воспроизводилось на двух машинах. https именно с серверным сертификатом. да - сам сертификат был не валидный. Если будет возможность - попробую сделать образ.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
А вот с этого места поподробнее. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2014(UTC) Сообщений: 7 
|
С какого именно? И что расписать подробнее?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2014(UTC) Сообщений: 1
|
Та же самая проблема. Ключ RSA 2048. Путь сертификации "thawte"->"Thawte DV SSL CA"->xxx. Сертификат просрочен. .NET виснет в: сallstack:
> System.dll!System.Net.PolicyWrapper.GetChainErrors(string hostName, System.Security.Cryptography.X509Certificates.X509Chain chain, ref bool fatalError) Line 84 + 0xd bytes C# System.dll!System.Net.PolicyWrapper.CheckErrors(string hostName, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) Line 43 + 0x10 bytes C# System.dll!System.Net.CertPolicyValidationCallback.Invoke(string hostName, System.Net.ServicePoint servicePoint, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Net.WebRequest request, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) Line 38 + 0x21 bytes C# System.dll!System.Net.ServicePoint.HandshakeDoneProcedure.CertValidationCallback(string hostName, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) Line 1221 + 0x147 bytes C# System.dll!System.Net.Security.SecureChannel.VerifyRemoteCertificate(System.Net.Security.RemoteCertValidationCallback remoteCertValidationCallback) Line 812 + 0x19 bytes C# System.dll!System.Net.Security.SslState.CompleteHandshake() Line 286 + 0x24 bytes C#
Немного исходников самого .NET: PolicyWrapper.cs (System.dll)
internal static uint VerifyChainPolicy(SafeFreeCertChain chainContext, ref ChainPolicyParameter cpp) { ChainPolicyStatus ps = new ChainPolicyStatus { cbSize = ChainPolicyStatus.StructSize }; UnsafeNclNativeMethods.NativePKI.CertVerifyCertificateChainPolicy((IntPtr) 4L, chainContext, ref cpp, ref ps); return ps.dwError; }
private unsafe uint[] GetChainErrors(string hostName, X509Chain chain, ref bool fatalError) { ...................... Label_006B: errorCode = VerifyChainPolicy(chainContext, ref cpp); uint num2 = (uint) MapErrorCode(errorCode); list.Add(errorCode); if (errorCode != 0) { if (num2 == 0) { fatalError = true; } else { cpp.dwFlags |= num2; if ((errorCode == 0x800b010f) && ServicePointManager.CheckCertificateName) { ssl_extra_cert_chain_policy_para.fdwChecks = 0x1000; } goto Label_006B; //всегда вызывается этот оператор goto } } .....................
VerifyChainPolicy() всегда возращает один и тот же код 0x800b0101 (CertificateProblem.CertEXPIRED).
После удаления КриптоПРО CSP всё работает отлично. Версия ядра СКЗИ: 3.6.5364 KC1 Версия продукта: 3.6.7491
Возможно, Вы изменили криптопровайдером логику функции CertVerifyCertificateChainPolicy (crypt32.dll)? Сертификат дать не могу.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
Да, при наличии библиотеки pkivalidator, мы дополняем алгоритм проверки сертификата. Видимо в нем есть ошибка( А почему не можете дать сертификат? workaround: Удалите регистрацию: CLSID\\{1FDD1FC3-6347-49DF-BDAB-E465BF32AD92}\\InprocServer32 |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,010  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 17 раз Поблагодарили: 588 раз в 529 постах
|
|
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
После установки КриптоПро CSP 3.6 R4 перестали работать https-соединения в .NET
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close