在制作网络请求时,我对处理政策错误完全不熟悉,所以此时我有点困惑..
我有这个任务来调用Web服务,但如果我正在调用的服务器的证书无效,则不允许进行调用。
因此,我创建了一种方法来调用具有无效证书的站点,并使用ServerCertificateValidationCallback来阻止在证书无效时进行调用。
我需要快速了解如何检测处理程序中的无效证书。我原本以为调用“revoked.badssl.com”会导致sslPolicyErrors对象中的某些内容不是“none”,但事实并非如此吗?我认为在调用badssl或我的其他具有有效证书的URL时没有区别。
例如:如果在chrome中打开https://pinning-test.badssl.com/,则显示“ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN”(尽管IE显示页面)。如何找到chrome认为无效证书的信息,以便我可以在我的代码中将其处理为无效?
这是我目前正在尝试的代码:
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) =>
{
if(someError?!)
return false;
return true;
};
using (HttpClient client = DefaultHttpClient())
{
Uri uri = new Uri("https://revoked.badssl.com/");
string jsonObj = "{}";
var content = new StringContent(jsonObj, Encoding.UTF8, "application/json");
HttpResponseMessage response = client.PostAsync(uri, content).Result;
}
答案 0 :(得分:0)
默认情况下,不执行吊销检查。您需要在ServicePointManger Class上进行设置,以便您的应用程序进行检查。
System.Net.ServicePointManager.CheckCertificateRevocationList = true;