2012-10-14 144 views
0

我用C#.NET Win-Forms编写了一个SSL客户端。我将我的证书(公钥)添加到系统根存储(通过.NET代码或通过Internet Explorer手动执行),它在Windows XP上运行良好,但在Windows 7上有以下AuthenticationException当试图AuthenticateAsClient )
客户端和服务器不能沟通,因为他们不具备一个共同的算法Windows 7上的SSL客户端SSPI错误

Microsoft支持一些注册表项的列表文件,谈谈已启用的协议/密码/算法(新强大的)或者在Windows 7中默认禁用(旧的过时的),所以我们可以通过编辑注册表来启用/禁用它们。下面是这些链接:

How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll TLS/SSL Cryptographic Enhancements

至于我,我不擅长密码,我无法理解该注册表项的比赛与我的情况。这里说到我使用的客户端X509证书对象的属性:

SignatureAlgorithm.FriendlyName: “sha1RSA
版本:

可能有人请帮忙吗?

回答

0

与Windows注册表项和值后挣扎(工作,但不合逻辑,像禁用某些其他物品!),我通过启用和编辑的Windows密码套件订单不改变任何注册表解决了这个问题。

说明:

1 - 中开始进入输入gpedit.msc>运行...本地组策略编辑器打开。 2 - 转至计算机配置>管理模板>网络> SSL配置设置
3 - 双击SSL密码套件订单项目在右侧。
4 - 选择在打开的窗口上启用单选按钮。在中间左侧有一个文本框,里面有一些用逗号分隔的文本。将文本复制/粘贴到空白的记事本窗口中。
5 - 将你想成为的项目在第一个(在我的情况:TLS_RSA_WITH_RC4_128_SHASSL_CK_RC4_128_WITH_MD5
6 - 替换旧文本与新的。
7 - 与注册表不同,您必须立即重新启动计算机才能使更改生效。

希望它有帮助。