我在服务器的 Windows 事件日志中收到此错误:
从远程客户端应用程序接收到 TLS 1.0 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。SSL 连接请求失败。
当我尝试从 Windows Server 2003 机器连接到 Windows 7 机器上的 Web 服务时。
如何将一个密码套件添加到另一个支持的密码套件?
(固定客户端是理想的,但如果服务器解决方案没有问题 - 我可以访问所有涉及的盒子,我只想要它们之间的一些基本加密以保护隐私)。
除了数小时的谷歌搜索和阅读,我还尝试过:
- 检查服务器窗口事件查看器(发现密码套件错误)
- 从http://support.microsoft.com/kb/948963向 test1 添加密码套件(没有帮助)
- 将 TLS 1.0 添加到服务器 Windows 注册表中密码套件中的协议(无变化)
- 安装 IIS 工具希望向 Schannel 添加更多协议(它没有)
- 再次为客户导出证书,但包含私钥(无变化)
- 检查服务器和客户端上安装的密码套件是否匹配(找不到 win2k3 列出它们的位置)
- 将 TLS_RSA_WITH_AES_256_CBC_SHA(由上述修补程序安装)添加到服务器的密码套件(不,已经在那里)
Windows 7 在选择密码时使用新的 CNG(下一代密码术)API。据我所知,用于 Windows 2003 的 CNG 不可用。
但是,您可以安装这些基于 AES 的密码套件以在 Windows 2003 上使用:
这些是 Windows Vista 和 Windows 7 客户端将尝试协商使用 TLS 1.0 及更高版本的首批套件,并且也受到 OpenSSL 客户端的支持。
为了使用这些,安装KB948963
解决方案是再次生成我的证书,这次强制使用 RSA 和 SHA1(尽管 SHA1 是默认值)。出于某种原因,Win Server 2k3 不能或不会使用具有默认 makecert 证书的正确密码。这是对我有用的命令行:
makecert -pe -r -ss my -sr localMachine -n "CN=domainnameoripaddressgoeshere.com" -e 01/01/2098 -a sha1 -eku 1.3.6.1.5.5.7.3.1 -sky exchange -sp "Microsoft RSA SChannel密码提供者”-sy 12
有关详细信息,请参阅http://mgowen.com/2013/06/19/cipher-suites-issue/和http://msdn.microsoft.com/en-us/library/bfsktky3(v=vs.110).aspx .