Не удается подключиться к серверу с помощью ServicePointManager или API SslStream после обновления до 4.6 платформа.NET Framework

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 3069494
Проблема
Предположим, что после обновления до Microsoft платформа.NET Framework 4.6 на вашем компьютере. При использовании приложения, использующего SSL 3.0 с ServicePointManager или SslStream API-интерфейсов для подключения к серверу, установить подключение не удастся.
Причина
Эта проблема возникает, поскольку по умолчанию набор протоколов SSL/TLS, используемый ServicePointManager и SslStream был изменен.

Старое значение: Ssl 3.0 | Протокол TLS 1.0 | TLS 1.1

Новое значение: Tls 1.0 | TLS 1.1 | TLS 1.2

Временное решение
Чтобы обойти эту проблему, так как SSL 3.0 показали небезопасные и уязвимы для атак Доставайте свой обновите сервер Tls 1.0, Tls 1.1 и Tls 1.2.

Примечание Если не удается обновить сервер, следует использовать AppContext класс, чтобы отказаться от этой функции. Для этого воспользуйтесь одним из следующих способов:
  • Программно: Должен быть очень первое, что делает приложение, посколькуServicePointManagerбудет инициализировать только один раз. В следующем примере кода используется в приложении:
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • С помощью файла AppConfig для приложения: добавьте следующую строку к файлу Appconfig:
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"></AppContextSwitchOverrides>


Дополнительные сведения об известных проблемах в 4.6 платформа.NET Framework см. Известные проблемы с 4.6 платформа.NET Framework.
Дополнительная информация
Дополнительные сведения о изменения версий продуктов и влияние в 4.6 платформа.NET Framework см. Совместимость приложений в платформа.NET Framework 4.6.

Заметки
  • Новая конфигурация применяется только в том случае, если приложение предназначено для 4.6 платформа.NET Framework. Платформа.NET Framework 4.5.2 и более ранних versionswill не будут затронуты даже, если они выполняются в среде 4.6 платформа.NET Framework.
  • Список соответствующих API верхнего уровня:
    • HttpClient HttpWebRequest
    • FtpClient
    • SmtpClient
    • Класс SslStream
  • SCH_USE_STRONG_CRYPTO Этот флаг будет автоматически использоваться в 4.6 платформа.NET Framework и влияет на поведение, удаляя небезопасные алгоритмы шифрования и хэширования. Для всех операционных систем более ранних, чем Windows 10 алгоритмRC4 удаляется из использования. От Windows 10 будут удалены следующие дополнительные алгоритмы небезопасные:DES, NULL, Экспорт и MD5

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 3069494 — последний просмотр: 07/20/2015 15:59:00 — редакция: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3069494 KbMtru
Отзывы и предложения