FtpWebRequest "The remote certificate is invalid according to the validation procedure"

John Smith picture John Smith · Jul 20, 2012 · Viewed 11.1k times · Source

I have a .NET client application that tries to ftp over a file to an ftp site which has a Self signed SSL certificate. This ftp site is running on Windows 7 Enterprise, IIS 7. I am getting the following error: "The remote certificate is invalid according to the validation procedure".

I have tried installing the certificate in the trusted root certificates but that still does not work.

I have used the delegate call back in the code that is mentioned some of the posts here - it works. But I do not want to use that in my production code.

Also in production some of our customers are using self signed certificates.

Any ideas on how to fix this issue?

Answer

Luca Quaglia picture Luca Quaglia · May 11, 2018

You have to overwrite the certificate checks so that they will always be considered good. That won't prevent the channel to remain SSL protected.

Uri target = new Uri("ftp://yourUri");
string fileName = @"fullPathOfYourFile";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("user", "password");
request.EnableSsl = true;

//overwrite the certificate checks
ServicePointManager.ServerCertificateValidationCallback = 
                      (s, certificate, chain, sslPolicyErrors) => true;

// Copy the contents of the file to the request stream
//....