FTPS(FTP with TLS/SSL)


- TLS: Transport Layer Security

- SSL: Secure Sockets Layer

(TLS is a newer version of the SSL protocol.)


There are three different methods of establishing FTPS connections:


1) Explicit FTPS (FTPES; AUTH TLS; Explicit SSL)

- The preferred method


1
2
3
4
5
6
7
8
9
10
11
12
...
 
// Connecting on the standard FTP port 21
// hFtp.put_Port(21); // No need to write code because default port is 21.
 
// Establish AUTH TLS
hFtp.put_AuthTls(TRUE);
 
// Do not set SSL property which is for establishing an implicit SSL connection.
hFtp.put_Ssl(FALSE);
 
hFtp.Connect();


2) Implicit FTPS (Implicit SSL)

- Connecting on port 990

- An older and no longer encouraged method of establishing FTPS. But it's still somewhat common.


1
2
3
4
5
6
7
8
9
10
11
12
...
 
// Connecting on port 990
hFtp.put_Port(990);
 
// We don't want AUTH SSL
hFtp.put_AuthTls(FALSE);
 
// We want implicit SSL
hFtp.put_Ssl(TRUE);
 
hFtp.Connect();


3) AUTH SSL

- No longer encouraged


Plain FTP is insecure.