我不确定以下是否可行,因为我不是这方面的专家(安全,证书……等).
无论如何,我想要做的是使用C#代码获取网站SSL证书的公钥.就像有没有办法使用HTTP请求或其他东西从网站查询该信息?
为了让你们明白为什么我真的想要这样做,我将简要解释一下我想要实现的场景.基本上我有一堆网站使用OAuth 2.0来实现彼此之间的信任状态.因此,假设Site1向Site2发出请求并向其发送了一个令牌,该令牌应该来自受信任的授权服务器. Site2应该能够验证此令牌的真实性.
我希望这很清楚.
解决方法:
我出于类似目的使用以下代码块.我希望它有所帮助!
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;
标签:c,certificate,asp-net,oauth,ssl-certificate
来源: https://codeday.me/bug/20190520/1143077.html