无法在C#中使用SslStream接受.net框架4.6的TLS 1.2协议
我制作了一个应该接受SSL连接的程序.我希望它只接受TLS 1.2来提高安全性.
为此,我已经在Windows 7 Professional SP1 pc上使用Visual Studio 2015 express安装了.net framework 4.6并编译了SW. VS中“应用程序”下的目标框架已设置为4.6 在SW我使用SslStream方法验证证书,并确保只使用TLS 1.2,我输入行 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 我尝试在main()和插入新的SSL流之前插入这一行 对于测试我使用openssl连接,使用命令:
我的问题是C#程序得到以下异常:
OpenSsl的输出是
如果我使用-tls1没有问题,所以我认为这是因为.net SslStream不支持tls1_2(或tls1_1) 有没有人可以解释我做错了什么 /卡斯滕 解决方法
ServicePointManager安装程序将修复Web调用(例如使用WebClient),但对于SslStream,您需要更多.您需要在调用AuthenticateAsClient时提供可接受的安全协议.而不是
sslStream.AuthenticateAsClient(hostname); 做这个 sslStream.AuthenticateAsClient(hostname,null,SslProtocols.Tls12,true); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |