У меня есть сервер R2 Windows Server 2008 года, выполняющий дюжину Платформ.NET 4.0 приложения WebForms, и я должен отключить TLS 1.0 и ниже. Когда я делаю это, все безопасные связи прерываются, и я был вынужден повторно включить TLS 1.0. Там какой-либо путь состоит в том, чтобы использовать TLS 1.2 в платформе 4,0 среды? Возможно, я пропускаю что-то?
Кроме того, из-за ограничений версии CMS, который мы используем, мы не можем обновить Платформу в это время.
Единственным путем я нашел для изменения, это находится непосредственно на коде:
в самом начале Вашего приложения Вы устанавливаете
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
, необходимо включать system.net
класс
, который я сделал это прежде, чем назвать веб-сервисом, потому что мы должны были заблокировать tls1 также.
Если Вы не можете добавить свойство к 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 установленных.
Внесите следующие изменения в своем Реестре, и он должен работать:
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
Согласно это , Вам будет нужна.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
Я кодирую в VB, и смог добавить следующую строку к моему файлу Global.asax.vb в Application_Start
ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType) 'TLS 1.2
Я встречаюсь, та же проблема о Windows установила Платформу.NET 4.0.
И я Решил эту проблему путем установки Платформа.NET 4.6.2 .
Или можно загрузить новейший пакет , чтобы иметь попытку.