获取网站SSL证书的公钥

Kas*_*sem 5 c# asp.net oauth certificate ssl-certificate

我不确定以下是否可行,因为我不是这方面的专家(安全,证书......等).

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

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

我希望这很清楚.

小智 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;
Run Code Online (Sandbox Code Playgroud)