FTP over TLS

From FileZilla Wiki
Jump to navigationJump to search

Setup

Server Setup

Open the admin interface, and go to settings. Choose SSL/TLS (FTPS) settings, and choose to generate a new certificate. The two digit country code can be found by googleing (United States is just US - it can be confusing that two digit can be two letters, and not necessarily two numbers only).

Once you have generated the certificate, and chosen where to save it, filezilla will auto fill in the private key file, and the certificate file fields to point to the generated certificate.

At this point, you can either choose to allow SSL/TLS if the user opts, or you can force them to always use SSL/TLS, and not allow them to connect if they do not use it.

PROT P refers to the data transfers. Communication with the server is always encrypted if you use SSL/TLS.
Communication encrypted: PROT C, Communication+Data encrypted: PROT P.

If PROT P isn't enforced, client could send PROT C and transfer files unencrypted. If PROT P is enforced, PROT C is rejected.

Also see FTPS using Explicit SSL/TLS howto (Server).

Explicit vs Implicit FTPS

FTPS (SSL/TLS) is served up in two incompatible modes. If using explicit FTPS, the client connects to the normal FTP port and explicitly switches into secure (SSL/TLS) mode with "AUTH TLS", whereas implicit FTPS is an older style service that assumes SSL/TLS mode right from the start of the connection (and normally listens on TCP port 990, rather than 21). In a FileZilla client this means prefixing the host with "FTPES://" to connect an "explicit" FTPS server, or "FTPS://" for the legacy "implicit" server (for which you will likely also need to set the port to 990).

SSL/TLS (FTPS) vs SSH (SFTP)

FTPS (FTP encrypted with SSL/TLS) should not be confused with SFTP (SSH). The latter is a completely different protocol, with more information here.