我已经设置了一个简单的.NET 4.6 Web服务器,使用httplistener在服务器2012 R2计算机上使用'HTTPS'前缀和链接证书。HTTPS接口有效,但仅使用TLS 1.0而不是1.1或1.2,默认情况下应由服务器2012支持。
到目前为止,我已经尝试过的是迫使系统使用TLS 1.2:
- 在TLS 1.2 的注册表中添加并启用了Schannel协议
- 在.NET框架注册表中添加并启用了SchusestrongCrypto
- 注册表中的TLS 1.0和SSL的禁用Schannel协议
- 通过system.net.servicepointmanager.securityprotocol = system.net.securityprotocoltype.tls12;
,但这些似乎都没有所需的效果。当SSL和TLS 1.0通过Schannel注册表禁用时,Web服务器将变得无法实现。
框架.NET 4.6.2已安装。可执行文件是针对.NET 4.6构建的。有提示吗?
欢呼。
在答案中键入它,因为它仍然有用,而不仅仅是评论。
在我的情况下,我能够通过提琴手看到主要的SSL握手,看看选择了哪个密码套件 - 尽管我的情况是SSL客户端,要求使用TLS1.2的强有力的特定特定的密码到服务器上工作,但我认为它会相反,没有太大的不同。其次,我启用了您在问题中提到的所有内容,而且我还必须在app config
文件中启用这些内容才能使其最终工作。
<compilation targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />