![MS Server 2012 TLS 连接问题](https://linux22.com/image/723599/MS%20Server%202012%20TLS%20%E8%BF%9E%E6%8E%A5%E9%97%AE%E9%A2%98.png)
我们使用知名的支付系统,今天从我们的 RDS 服务器(MS Server 2012)的访问已完全停止。
我不禁认为它与密码和/或 TLS/SSL 版本有关。
应用程序抛出(看起来像通用的 Win 错误)..
HttpSendRequestFailed with error 12029.
然后,如果我进入事件日志,我可以找到多个显示此情况的日志。
A fatal alert was received from the remote endpoint. The TLS protocol defined fatal alert code is 70.
然而,奇怪的是,我可以在我的 Server 2008 R2 机器、Win 7 客户端机器和 Win 10 机器上完美连接到该支付提供商。
我在这里找到了一些修复程序
但我并没有感到太多快乐,任何帮助都将不胜感激。
答案1
答案2
错误代码 70 是 protocol_version 错误。简而言之,客户端尝试使用的协议版本被识别但不受支持。
https://www.rfc-editor.org/rfc/rfc5246#appendix-A.3
这可能不是最好的答案,但我会尝试使用加密在 7、10 和 2008 上查看正在使用哪些协议、密码、哈希和密钥交换,并将它们与 2012 上使用的内容进行比较。
请注意,有一些设置可以启用客户端和服务器端的协议/密码。因此,您可以在服务器端启用 2012 的协议/密码,但忽略在客户端上设置 2012 的协议/密码。这就是 ISSCrypto 派上用场的地方,因为它为您提供了服务器端和客户端的协议/密码设置的图形视图。
由于您提到了支付系统,我怀疑这涉及到 PCI-DSS 合规性,并且在 PCI-DSS 3.1 要求中,您不能再使用 TLS 1.0 协议。您的 2012 上的 TLS 1.1 和 TLS 1.2 可能在服务器端启用,但在客户端未启用(而您的 2012 在这方面充当客户端)。错误代码 70 适合这种情况。