【发布时间】:2012-10-14 11:40:08
【问题描述】:
我用 C#.NET Win-Forms 编写了一个 SSL 客户端。我将我的证书(公钥)添加到系统根存储(通过 .NET 代码或通过 Internet Explorer 手动,两者都有效)并且它在 Windows XP 上运行良好,但在 Windows 7 上具有以下 AuthenticationException 时尝试AuthenticateAsClient() :
"客户端和服务器无法通信,因为它们没有共同的算法"
Microsoft 支持文档列出一些注册表项,并说明在 Windows 7 中默认启用(新的强项)或禁用(旧的过时的)的协议/密码/算法,因此我们可以通过编辑启用/禁用它们注册表。以下是这些链接:
How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll TLS/SSL Cryptographic Enhancements
就我不擅长密码学而言,我无法理解哪个注册表项与我的案例匹配。这是我用作客户端的 X509Certificate 对象的属性:
SignatureAlgorithm.FriendlyName : "sha1RSA"
版本:3
有人可以帮忙吗?
【问题讨论】: