Клиент всегда общается с использованием TLS 1.0. , На стороне клиента у меня есть Windows Server 2012 R2 (который, согласно документации, поддерживает 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» = двойное слово: 00000000 «Включено» = двойное слово: 00000001
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Server] «DisabledByDefault» = двойное слово: 00000000 «Включено» = двойное слово: 00000001
Но, тем не менее, клиент протокола первого контакта с сервером имеет TLS 1.0.
Ниже приведены конфигурации на стороне клиента:
Windows Server 2012 R2 .NET httpRuntime targetFramework = "4.5.2" .NET Version = 4.0.30319.42000 32bit (я предполагаю, это означает, что он находится в .NET framework 4.5.2)
Кроме того, я попытался добавить приведенный ниже код в App.config и Web.config файлы.
**Web.config**
<appSettings>
<add name="AppContext.SetSwitch:Switch.System.Net.DontEnableSystemDefaultTlsVersions" value="false" />
</appSettings>
**App.config**
<appSettings>
<AppContextSwitchOverrides value="Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols=false;Switch.System.Net.DontEnableSystemDefaultTlsVersions=false" />
</appSettings>
Какова возможная причина того, что клиент использует TLS 1.0 во время первоначального установления связи с сервером? и как убедиться, что клиент всегда пытается связаться с TLSv1.2, не отключая TLS 1.0?