TLS 1.2 в платформе.NET 4.0

У меня есть сервер R2 Windows Server 2008 года, выполняющий дюжину Платформ.NET 4.0 приложения WebForms, и я должен отключить TLS 1.0 и ниже. Когда я делаю это, все безопасные связи прерываются, и я был вынужден повторно включить TLS 1.0. Там какой-либо путь состоит в том, чтобы использовать TLS 1.2 в платформе 4,0 среды? Возможно, я пропускаю что-то?

Кроме того, из-за ограничений версии CMS, который мы используем, мы не можем обновить Платформу в это время.

62
задан 17 November 2015 в 19:25

6 ответов

Единственным путем я нашел для изменения, это находится непосредственно на коде:

в самом начале Вашего приложения Вы устанавливаете

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

, необходимо включать system.net класс

, который я сделал это прежде, чем назвать веб-сервисом, потому что мы должны были заблокировать tls1 также.

34
ответ дан 31 October 2019 в 13:10

Если Вы не можете добавить свойство к system.net библиотека классов.

Затем добавьте в [1 114] файл Global.asax :

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

И можно использовать его в функции в стартовой строке:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

И, это полезно для STRIPE платежный шлюз, который только поддерживает TLS 1.1, TLS 1.2.

РЕДАКТИРОВАНИЕ: После такого количества вопросов на.NET 4.5 установлен на моем сервере, или не... вот снимок экрана Registry на моем рабочем сервере:

у меня есть только платформа.NET 4,0 установленных.

registry

79
ответ дан 31 October 2019 в 13:10

Внесите следующие изменения в своем Реестре, и он должен работать:

1.) Платформа.NET сильная криптография ключи реестра

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

2.) Безопасный канал (Schannel) ключи реестра TLS 1.2

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
56
ответ дан 31 October 2019 в 13:10

Согласно это , Вам будет нужна.NET 4,5 установленных. Для получения дополнительной информации посетите веб-страницу. Суть его - то, что после того, как у Вас есть.NET 4,5 установленных, Ваши 4,0 приложения будут использовать 4,5 System.dll. Можно включить TLS 1.2 двумя способами:

  • В начале приложения, добавьте этот код: ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
  • Набор ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319: SchUseStrongCrypto к DWORD 1
24
ответ дан 31 October 2019 в 13:10

Я кодирую в VB, и смог добавить следующую строку к моему файлу Global.asax.vb в Application_Start

ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType)    'TLS 1.2
5
ответ дан 31 October 2019 в 13:10

Я встречаюсь, та же проблема о Windows установила Платформу.NET 4.0.
И я Решил эту проблему путем установки Платформа.NET 4.6.2 .
Или можно загрузить новейший пакет , чтобы иметь попытку.

0
ответ дан 31 October 2019 в 13:10

Другие вопросы по тегам:

Похожие вопросы: