Использование. NET Core 2.2, мне нужно воссоздать ошибку SSL с неполной цепочкой, однако ServerCertificateValidationCallback дает мне другую цепочку сертификатов, чем я ожидаю, с этими сертификатами, проходящими проверку. Может кто-нибудь объяснить, что здесь происходит не так?
Автономный тест, который вызывает badssl.com:
public void DoTheThing()
{
string URI = "https://incomplete-chain.badssl.com";
ServicePointManager.ServerCertificateValidationCallback +=
new RemoteCertificateValidationCallback(Validate.ValidateRemoteCertificate);
using (WebClient wc = new WebClient())
{
var output = wc.DownloadString(URI);
}
}
public static bool ValidateRemoteCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors)
{
return policyErrors == SslPolicyErrors.None;
}
Параметр X509Chain в моем обратном вызове содержит 3 сертификата, *. Badssl. com , Digicert и Digicert . Сертификат 2 является Digicert и действителен.
Однако SslLabs , он говорит мне, что должно быть только два сертификата, со вторым срок действия одного истек: