title: WebClient + HTTPS Issues
body: <p>I am currently integrating with a system created by a 3rd party. This system requires me to send a request using XML/HTTPS. The 3rd party send me the certificate and I installed it</p>
  
  <p>I use the following code:</p>
  
  <pre><code>using (WebClient client = new WebClient())
  {
     client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");
  
     System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
     var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
  }
  </code></pre>
  
  <p>This code returns the following <code>WebException</code>:</p>
  
  <blockquote>
    <p>The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.</p>
  </blockquote>
  
  <p><strong>UPDATE</strong> Because it's a test server I am working against, the certificate isn't trusted and validation fails... To bypass this in test/debug environment, create a new <code>ServerCertificateValidationCallback</code></p>
  
  <pre><code>ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
  </code></pre>
  
  <p>and here is my "fake" callback</p>
  
  <pre><code>private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
  {
     return true;
  }
  </code></pre>
  
  <p>Read more <a href="http://developers.de/blogs/damir_dobric/archive/2006/06/29/585.aspx" rel="noreferrer">here</a> and <a href="http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback.aspx" rel="noreferrer">here</a></p>