Solución:
Para cualquier persona interesada en aplicar esta solución por solicitud, esta es una opción y utiliza una expresión Lambda. La misma expresión Lambda también se puede aplicar al filtro global mencionado por blak3r. Este método parece requerir .NET 4.5.
String url = "https://www.stackoverflow.com";
HttpWebRequest request = HttpWebRequest.CreateHttp(url);
request.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
En .NET 4.0, la expresión Lambda se puede aplicar al filtro global como tal
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
Dado que solo hay un ServicePointManager global, la configuración de ServicePointManager.ServerCertificateValidationCallback dará como resultado que todas las solicitudes posteriores heredarán esta política. Dado que es una “configuración” global, sería preferible establecerla en el método Application_Start en Global.asax.
La configuración de la devolución de llamada anula el comportamiento predeterminado y usted mismo puede crear una rutina de validación personalizada.
Esto funcionó para mí:
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true; // **** Always accept
};
Fragmento de aquí: http://www.west-wind.com/weblog/posts/2011/Feb/11/HttpWebRequest-and-Ignoring-SSL-Certificate-Errors