问题描述
我正在寻找一种解释,说明为什么以下这种情况有效,这让我很困惑。 我通读了以下文章,但没有回答我的问题: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
我在IIS中有一个Web服务,并且该Web服务调用了另一台计算机上的另一个Web服务。 IIS中的Web服务是使用.NET Framework 4.5编译的。 我想通过将注册表项 disabledByDefault 和 Enabled 分别添加到相应的SCHANNEL / Protocols TLS注册表项下的1和0来禁用TLS1.0和TLS1.1。
我注意到从另一台计算机浏览到IIS中的该站点会导致TLS连接为1.2,所以一切都很好。
现在,我注意到从该Web服务到另一台机器(因此我们现在是客户端)上的Web服务的调用失败。
我做了一些阅读,并且由于应用程序是使用.NET Framework 4.5编译的,因此我需要设置注册表: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.30319 \ SchUseStrongCrypto 设置为1以确保默认情况下.NET框架尝试使用TLS1.1或TLS1.2。 现在,它已经起作用了。
我的问题是,为什么需要设置SchUseStrongCrypto来使客户端在TLS1.2上进行通信,但是在我最初使用Web服务器的情况下,我只需要禁用TLS1.0和TLS1.1注册表项即可让它仅在TLS1.2上进行通信?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)