客户端应用程序所支持的密码套件均不受服务器支持

客户端应用程序所支持的密码套件均不受服务器支持

我在服务器的 Windows 事件日志中收到此错误:

从远程客户端应用程序收到 TLS 1.0 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。SSL 连接请求失败。

当我尝试从 Windows Server 2003 连接到 Windows 7 上的 Web 服务时。

如何向另一个支持的密码套件中添加密码套件?

(修复客户端是理想的,但如果服务器解决方案失败了,我可以访问所有涉及的盒子,我只是希望它们之间进行一些基本的加密以保护隐私)。

经过几个小时的谷歌搜索和阅读,我尝试了:

  • 检查服务器 Windows 事件查看器(发现密码套件错误)
  • 将密码套件添加到 test1 中http://support.microsoft.com/kb/948963(没用)
  • 在服务器的 Windows 注册表中的密码套件协议中添加了 TLS 1.0(无变化)
  • 安装 IIS 工具,希望为 Schannel 添加更多协议(但事实并非如此)
  • 再次为客户端导出证书,但包含私钥(无变化)
  • 检查服务器和客户端上安装的密码套件是否匹配(找不到 win2k3 列出它们的位置)
  • 将 TLS_RSA_WITH_AES_256_CBC_SHA(通过上述修补程序安装)添加到服务器的密码套件中(不,已经在那里了)

答案1

Windows 7 在选择密码时使用新的 CNG(下一代加密技术)API。据我所知,Windows 2003 不提供 CNG。

但是,您可以安装这些基于 AES 的密码套件以在 Windows 2003 上使用:

  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA

这些是 Windows Vista 和 Windows 7 客户端尝试协商使用 TLS 1.0 及更高版本的首批套件,并且也受到 OpenSSL 客户端的支持。

为了使用这些,请安装KB948963

答案2

解决方案是再次生成我的证书,这次强制使用 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

相关内容