Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Попробуйте рекомендации ниже. 0. Убедиться что версия sdk соответствует версии КриптоПро .NET 1. При использовании целевой версии старше 4.6.2 включительно .NET Framework использует CNG провайдеры по умолчанию, которые не поддерживаются КриптоПро.NET. Для корректной работы необходимо выставить switch DisableCngCertificates=true. Сделать для клиента это можно следующим образом: В app.config файле: Код:<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.IdentityModel.DisableCngCertificates=true" />
</runtime>
</configuration>
Или в коде: Код:private const string DisableCngCertificates = @"Switch.System.IdentityModel.DisableCngCertificate";
AppContext.SetSwitch(DisableCngCertificates, true);
2. При использовании целевой версии старше 4.5 включительно, в случае использования в проекте сборок CryptoPro.Sharpei.ServiceModel.dll и CryptoPro.Sharpei.IdentityModel.dll их необходимо заменить на сборки CryptoPro.Sharpei.ServiceModel45.dll и CryptoPro.Sharpei.IdentityModel45.dll соответственно и пересобрать проект. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
0. Да при каждой смене, перепроверяли SDK + референсы на SDK в проекте.
1. DisableCngCertificates=true стоит достаточно давно в продукт версии, без неё не работает совсем.
2. Да они у нас прилеплены к проекту и референсы ведут на них, иначе для WCF не указать гостовские сертификаты, enum то описан в них.
Это все сделано и работает с версией SDK .NET КриптоПро 6ххх.
При замене SDK: 1. Переустанавливаем сам SDK 2. Заменяем в проекте CryptoPro.Sharpei.ServiceModel45.dll и CryptoPro.Sharpei.IdentityModel45.dll 3. Пересобираем проект
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Попробуйте собрать message wcf trace с клиента.
С сервера как я понимаю нет возможности его получить? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Успел ответить на удаленный вепрос ... Это возможно, надо посмотреть.
Трейс снят с демонстрационного клиента от поставщика услуг. Ошибка точно такая же, поэтому не стал его препарировать.
Снять с нашего проекта будет не просто, т.к. это связка нескольких сервисов по WCF, там в трейсе будет каша.
Сейчас попробую по быстрому набросать небольшое свое демо и снять другой трейс.По поводу трейса от поставщика, то с нашей стороны нет. Но от них был тикет, я сейчас скину ссылку на это обсуждение, возможно смогут помочь. Отредактировано пользователем 13 января 2020 г. 10:54:46(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Автор: Артём Макаров Попробуйте собрать message wcf trace с клиента. Отправил в личку трейс с клиента от поставщика, с вашими настройками диагностики. Если не подойдет, то позже сделаю свою демку и сниму лог.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Спасибо. Пока больше с клиентской стороны ничего не нужно. Попробуем разобраться с серверной в соответствующей теме. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Добрый день. Похоже дело в том, что из-за несовпадения версий КриптоПро.NET на клиенте и сервера не получается использовать общий алгоритм экспорта ключа. Сервер со старым КриптоПро.NET пытается импортировать ключ на старом алгоритме, а клиент экспортирует и отправляет на новом. Как только на сервере обновят версию КриптоПро.NET до актуальной, проблема должна исчезнуть. Пока можете попробовать сборку из вложения. Добавили возможность указывать алгоритм экспорта для клиента через app.config. Нужно добавить в секцию "configuration" подсекцию "CryptoProNetSettings" и в ней задать ключик DefaultKeyWrappingMethod. Пример: Код:<configuration>
<configSections>
<section name="CryptoProNetSettings" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<CryptoProNetSettings>
<add key="DefaultKeyWrappingMethod" value ="CryptoProKeyWrap"/>
</CryptoProNetSettings>
</configuration>
Попробуйте пожалуйста, воспроизводится ли ошибка в версии из вложения и проставленным ключиком в app.config. Пароль на архив - 1. net-keyWrapFix.zip (1,690kb) загружен 7 раз(а).Отредактировано пользователем 14 января 2020 г. 15:13:09(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Быстро проверить не получилось. Если указать выше приведённые настройки, то при вызове стандартного диалога выбора сертификата из хранилища, клиент вылетает с исключением. Если просто обновить .NET Криптопро, без указанных настроек приложения, то диалог работает, но по WCF ошибка старая (что ожидаемо) Сейчас сделаю демку без выбора сертификата, проверить сам WCF. Отредактировано пользователем 14 января 2020 г. 14:02:32(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close