6

我不确定以下是否可行,因为我绝不是该主题(安全、证书等)的专家。

无论如何,我想做的是使用 C# 代码获取网站 SSL 证书的公钥。有没有办法使用 HTTP 请求或其他方式从站点查询该信息?

为了让你们理解我为什么真的想这样做,我将简要解释一下我想要实现的场景。基本上,我有很多网站使用 OAuth 2.0 来实现彼此之间的信任状态。因此,假设Site1向其发出请求并向Site2其发送了一个令牌,该令牌应该来自受信任的授权服务器。Site2应该能够验证此令牌的真实性。

我希望这已经足够清楚了。

4

1 回答 1

7

我将以下代码块用于类似目的。我希望它有帮助!!!

        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;
于 2013-03-18T16:38:52.103 回答