我正在尝试连接到使用自签名SSL证书的API.我这样做是使用.NET的HttpWebRequest和HttpWebResponse对象.我得到一个例外:
底层连接已关闭:无法为SSL/TLS安全通道建立信任关系.
我明白这意味着什么.我理解为什么 .NET认为它应该警告我并关闭连接.但在这种情况下,无论如何我都想连接到API,中间人攻击会被诅咒.
那么,我该如何为这个自签名证书添加例外呢?或者是告诉HttpWebRequest/Response不要验证证书的方法?我该怎么办?
我不确定以下是否可行,因为我不是这方面的专家(安全,证书......等).
无论如何,我想要做的是使用C#代码获取网站SSL证书的公钥.就像有没有办法使用HTTP请求或其他东西从网站查询该信息?
为了让你们明白为什么我真的想要这样做,我将简要解释一下我想要实现的场景.基本上我有一堆网站使用OAuth 2.0来实现彼此之间的信任状态.因此,假设Site1发出请求并向Site2其发送一个令牌,该令牌应该来自受信任的授权服务器.Site2应该能够验证此令牌的真实性.
我希望这很清楚.