Hi all -
I'm experimenting with Rebex FTP+SSL and have it working with FileZilla Server and FTP+SSL Explicit.
Since I only installed a self-signed cert within FileZilla and have it installed on my local development machine, I'm trying to test a simple C# console application.
If I use this code:
parameters.CertificateVerifier = CertificateVerifier.AcceptAll;
ftp.Connect(hostname, 21, parameters, FtpSecurity.Explicit);`
I can get logged in and everything is fine.
I implemented my own CustomVerifier and have it returning:
return TlsCertificateAcceptance.Other
false since I want to do some exception handling. Problem is, I have wrapped the following code within a try/catch and I seem to be getting an "The Application Has Stopped Working" window when it fails the certificate check... when I click Cancel, then the console window will display the exception -- but not from my try/catch.
What am I doing wrong? I want to get this working as a console application first so I can port it to a windows service... and I have to assume I will get certificate errors sometimes and need to handle it gracefully without crashing the service.
Any help or insight would be appreciated.
The try/catch below never seems to be used:
try
{
ftp.Connect(hostname, port, par, FtpSecurity.Explicit);
}
catch (FtpException e)
{
Console.WriteLine("Exception: {0}", e.Message);
Environment.Exit(1);
}
After clicking the application has stopped working window, the DOS window then displays below:
Response: 220-FileZilla Server version 0.9.40 beta
Response: 220-written by Tim Kosse (Tim.Kosse@gmx.de)
Response: 220 Please visit http://sourceforge.net/projects/filezilla/
Command: AUTH TLS
Response: 234 Using authentication type TLS
Unhandled Exception: Rebex.Net.TlsException: Server certificate was rejected by the verifier because of other problem. -
--> Rebex.Net.TlsException: Server certificate was rejected by the verifier because of other problem. ---> Rebex.Net.Tls
Exception: Server certificate was rejected by the verifier because of other problem.
at wWGvS.AsKBXeZ.BiNSFl(String , CertificateChain )
at wWGvS.AsKBXeZ.AuxmRo(Byte[] , Int32 , Int32 , cEEfuOZ )
at wWGvS.AsKBXeZ.OnHandshakeReceived(Byte[] buffer, Int32 offset, Int32 count)
at wWGvS.ckSCApZ.CzzDw(Byte[] , Int32 , Int32 )
at wWGvS.ckSCApZ.cDtmAOZ()
--- End of inner exception stack trace ---
at wWGvS.ckSCApZ.cDtmAOZ()
at wWGvS.ckSCApZ.ArwjUr()
at Rebex.Net.TlsSocket.Negotiate()
at wWGvS.AgXIfM.AUXDmhZ(TlsParameters )
at Rebex.Net.Ftp.BLyBkd(TlsParameters , FtpSecureUpgradeType )
at Rebex.Net.Ftp.Connect(String serverName, Int32 serverPort, TlsParameters parameters, FtpSecurity security)
--- End of inner exception stack trace ---
at Rebex.Net.Ftp.Connect(String serverName, Int32 serverPort, TlsParameters parameters, FtpSecurity security)
at RebexFTPSConsoleTest.Program.Main(String[] args) in c:usersdm3281documentsvisual studio 2010ProjectsRebexFT
PSConsoleTestRebexFTPSConsoleTestProgram.cs:line 101
Line 101 is the the Ftp.Connect() line.