在C#应用程序中通过HttpWebRequest建立https连接时,存储在服务器(2008R2)上的SSL握手中提供的可用密码套件列表是什么?是注册机构设置还是如何确定?
C#代码只是一个简单的
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(Uri);
WebReq.Method = "GET";
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
我遇到的问题是,当从服务器使用IE时,提供的密码列表与C#应用程序提供的内容不同(由wireshark捕获。)因此,基于C#的连接如果作为服务器失败支持并希望使用TLS_RSA_WITH_RC4_128_SHA,它不是由C#app提供的,而是由浏览器SSL握手提供的。
在其他服务器上使用相同的代码显示C#应用程序在SSL握手中提供了TLS_RSA_WITH_RC4_128_SHA,因此它让我相信该特定服务器上存在某些环境但是控制的位置和方式不是我的意思能够找到。
我会发布wireshark捕获的图像,以显示C#应用程序和IE SSL握手客户端Hello Cipher套件列表之间的区别,但我的搜索点较低。
答案 0 :(得分:0)
这是注册表路径SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers