为什么 Window 的 SSL Cipher-Suite 在某些 SSL 证书下受到限制?

Gar*_*ary 14 ssl ssl-certificate windows-server-2008-r2

问题:在服务器上使用某些证书时,Windows Server 2008 R2 将仅支持以下 ssl 密码套件:

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

这会阻止 XP 客户端连接到服务器,因为 XP 加密 API 默认不支持任何 AES 密码。
因此,尝试使用 Internet Explorer 或远程桌面进行连接时,服务器日志中会出现以下错误。(因为他们使用微软的 CAPI)

Schannel 错误 36874“从远程客户端应用程序接收到 TLS 1.0 连接,但服务器支持客户端支持的密码套件。SSL 连接请求失败。”
Schannel 错误 36888“生成了以下致命警报:40。内部错误状态为 1204”

Gar*_*ary 14

如果服务器上使用的证书是使用证书申请表中的 Legacy Key 选项生成的,则该证书的私钥将存储在 Microsoft 的旧版 Cryptographic API 框架中。当 Web 服务器尝试使用其新的下一代加密 (CNG) 框架处理请求时,似乎与存储在旧框架中的 RSA 私钥相关的某些内容对新框架不可用。因此,RSA 密码套件的使用受到严重限制。

解决方案:
使用自定义证书申请向导中的 CNG Key 模板生成证书申请。

MMC | 本地计算机证书管理器 | 个人证书文件夹 | (右击) | 所有任务 -> 高级操作 | 创建自定义请求 | “在没有注册政策的情况下进行” | 选择“(无模板)CNG 密钥” | 根据您的需要继续完成证书申请。

验证密钥是否在正确的位置:
http : //msdn.microsoft.com/en-us/library/bb204778(VS.85).aspx
http://www.jensign.com/KeyPal/index.html

验证正确密码套件的工具:
http : //pentestit.com/2010/05/16/ssltls-audit-audit-web-servers-ssl-ciphers/
https://www.ssllabs.com/

SSL 密码套件设置:http :
//support.microsoft.com/kb/245030
http://blogs.technet.com/b/steriley/archive/2007/11/06/changed-the-ssl-cipher-order -in-internet-explorer-7-on-windows-vista.aspx

这花了我们一周的时间才弄明白。我希望这可以为某人节省同样的麻烦。