HttpWebRequest结果在“请求被中止:无法创建SSL/TLS安全通道”并返回代码= AlgorithmMismatch
问题描述:
正如在this后,我有完全相同的错误在网络日志(返回代码= AlgorithmMismatch),除了我使用HttpWebRequest结果在“请求被中止:无法创建SSL/TLS安全通道”并返回代码= AlgorithmMismatch
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
为了避免POODLE漏洞,regkey已被设置为1(.. \ Protocols \ SSL 2.0 \ Client),但仍然出现此错误。我的生产SSL证书已被添加到Firefox和安全的web服务是可及的,并正常工作。我确切地说,这个错误发生在两个环境(Windows Server 2012和Windows 7)上,并且测试SSL证书一切正常。有任何想法吗?
答
..\Protocols\SSL 2.0\Client
这是错误的关键,使TLS1.2(SSL * 4 **更名为TLS1.0而发展,SSL2是老得多,从根本上打破,不应该使用)。
的右键被赋予在MS KB页:https://support.microsoft.com/en-gb/kb/245030
但是,你需要在按键设置值,包括:
…\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
(并有大量的简化版本的指导来设置的东西)
即使客户端和服务器都能达成TLS1.2协议套件,仍然存在导致无法创建安全通道的问题(例如,客户端不信任服务器的证书)。这将需要更多的细节(从异常类型和消息开始,并且对于内部异常递归)。
“...... SSL * 4 **更名为TLS1.0” - 不,TLS 1.0是SSL 3.1,TLS 1.1是SSL 3.2 ... –
@SteffenUllrich好的,我的回忆是不正确的,但重点是“SSL 2.0”与TLS没有任何关系,重命名发生在任何RFC发布之前。 – Richard
我创建了您提到的regkey(.. \ TLS 1.2 \ Client),将该值设置为0并重新启动系统,但仍然无效。正如我之前所做的那样,通过测试SSL证书,它可以与TLS 1.2协同工作。此外,使用生产证书,它可与ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls一起使用,但不适用于 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls1 | SecurityProtocolType.Tls2。 –