Sample code for 30+ languages & platforms
Xojo Plugin

FTPS with Mutual TLS Authentication (TLS Client Certificate)

See more FTP Examples

Demonstrates how to do mutual TLS authentication (using a client certificate from a .pfx/.p12).

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim ftp As New Chilkat.Ftp2

ftp.Hostname = "ftp.example.com"
ftp.Port = 21

// If using implicit TLS, you probably want port 990..
ftp.Port = 990

// Set this to False for implicit TLS, otherwise set to True for explicit TLS (where port is typically 21).
ftp.AuthTls = False

// Set this to True for implicit TLS, otherwise set to False.
ftp.Ssl = True

Dim cert As New Chilkat.Cert
success = cert.LoadPfxFile("qa_data/pfx/example.pfx","pfx_password")
If (success = False) Then
    System.DebugLog(cert.LastErrorText)
    Return
End If

// Use this certificate for our TLS mutually authenticated connection:
success = ftp.SetSslClientCert(cert)
If (success = False) Then
    System.DebugLog(cert.LastErrorText)
    Return
End If

// Establish the TLS connection with the FTP server.
success = ftp.ConnectOnly()
If (success = False) Then
    System.DebugLog(ftp.LastErrorText)
    Return
End If

// If a login is required, then login with the FTP account login/password.
ftp.Username = "myLogin"
ftp.Password = "myPassword"
success = ftp.LoginAfterConnectOnly()
If (success = False) Then
    System.DebugLog(ftp.LastErrorText)
    Return
End If

// Do whatever you're doing to do ...
// upload files, download files, etc...

// .....
// .....

success = ftp.Disconnect()