【发布时间】:2015-07-18 20:23:55
【问题描述】:
在 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# 应用程序提供,而是由浏览器 SSL 握手提供。
在其他服务器上使用相同的代码表明 C# 应用程序在 SSL 握手中提供了 TLS_RSA_WITH_RC4_128_SHA,因此它使我相信该特定服务器上存在某些环境问题,但控制的位置和方式不是我的事已经找到了。
我会发布 wireshark 捕获的图像,以显示 C# 应用程序和 IE SSL 握手客户端 Hello Cipher 套件列表之间的区别,但我的代表点较低。
【问题讨论】:
标签: c# ssl encryption httpwebrequest windows-server-2008-r2