我不确定以下内容是否可行,因为我绝不是这方面的专家(安全,证书等)。
无论如何,我想要做的是使用C#代码获取网站的公钥。有没有办法使用HTTP请求或其他东西从网站查询该信息?
为了让你们明白为什么我真的想这样做,我将简要解释一下我想要实现的情景。基本上我有一堆网站使用OAuth 2.0来实现彼此之间的信任状态。因此,让Site1
向Site2
发出请求并向其发送一个令牌,该令牌应该来自受信任的授权服务器。 Site2
应该能够验证此令牌的真实性。
我希望这很清楚。
答案 0 :(得分:5)
出于类似目的,我使用以下代码块。我希望它有所帮助!!!
Uri u = new Uri(url);
ServicePoint sp = ServicePointManager.FindServicePoint(u);
string groupName = Guid.NewGuid().ToString();
HttpWebRequest req = HttpWebRequest.Create(u) as HttpWebRequest;
req.ConnectionGroupName = groupName;
using (WebResponse resp = req.GetResponse())
{
}
sp.CloseConnectionGroup(groupName);
byte[] key = sp.Certificate.GetPublicKey();
return key;