Requesting html over https with c# Webclient

I am attempting various html resources via c# WebClient class from a site I have no control over. When I attempt to access urls such as ""

I get the error: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

I have found solutions that suggest I use the following code to ignore the certificate requirement and to make the webclient act as a browser, but I still recieve the same error

 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
                return true;
            using(WebClient webClient = new WebClient()) {
                webClient.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv: Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)";
                webClient.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                webClient.Headers["Accept-Language"] = "en-us,en;q=0.5";
                webClient.Headers["Accept-Encoding"] = "gzip,deflate";
                webClient.Headers["Accept-Charset"] = "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
                StreamReader sr = new StreamReader(webClient.OpenRead(inputString));


Have a read of this:

The server you are accessing doesn't support TLS so you will need to force it to use SSL3.

Add the following line to your call:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

Here's a fully working example:

using System;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

class Program
    static void Main(string[] args)
        Uri address = new Uri("");

        ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 ;

        using (WebClient webClient = new WebClient())
            var stream = webClient.OpenRead(address);
            using (StreamReader sr =new StreamReader(stream))
                var page = sr.ReadToEnd();

    /// <summary>
    /// Certificate validation callback.
    /// </summary>
    private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
        // If the certificate is a valid, signed certificate, return true.
        if (error == System.Net.Security.SslPolicyErrors.None)
            return true;

        Console.WriteLine("X509Certificate [{0}] Policy Error: '{1}'",

        return false;