FTP over TLS

From FileZilla Wiki
Jump to navigationJump to search

Setup[edit]

Server Setup[edit]

Open the admin interface, and go to settings. Choose FTP over TLS settings, and choose to generate a new certificate. The two digit country code can be found by searching the web (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 FTP over TLS if the user opts, or you can force them to always use FTP over 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 FTP over 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 TLS howto (Server).

Client Setup[edit]

For a client to connect to a server using TLS, then the host for that connection needs to be set to FTPS. In FileZilla client this means prefixing the host with "FTPES://" for "explicit" FTPS, or "FTPS://" for the legacy "implicit" FTPS.

Certificate Removal[edit]

The file trustedcerts.xml contains certificates for secure websites that you have told your FileZilla client to trust connections to. This file should not be confused with any certificates you have in use if you use FileZilla as a server as well.

Windows[edit]

In order to remove a saved certificate, navigate to %APPDATA%\FileZilla and delete, rename or modify the trustedcerts.xml file.

Linux, OS X and others[edit]

In order to remove a saved certificate rename or modify the file ~/.config/filezilla/trustedcerts.xml.

Please note that older FileZilla versions used ~/.filezilla/trustedcerts.xml.

Explicit vs Implicit FTPS[edit]

FTPS (FTP over 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 (TLS) mode with "AUTH TLS", whereas implicit FTPS is an older style service that assumes 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).

TLS (FTPS) vs SSH (SFTP)[edit]

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