Sample code for 30+ languages & platforms
Visual FoxPro

FTPS with Client Cert from Windows Certificate Store

See more FTP Examples

Demonstrates how to do mutual TLS authentication using a client certificate installed in the Windows certificate store.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loFtp
LOCAL loCert

lnSuccess = 0

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

loFtp = CreateObject('Chilkat.Ftp2')

loFtp.Hostname = "ftp.example.com"

* If using implicit TLS, you probably want port 990..
loFtp.Port = 990

* Set this to 0 for implicit TLS, otherwise set to 1 for explicit TLS (where port is typically 21).
loFtp.AuthTls = 0

* Set this to 1 for implicit TLS, otherwise set to 0.
loFtp.Ssl = 1

loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadByCommonName("The common name of your certificate")
IF (lnSuccess = 0) THEN
    ? loCert.LastErrorText
    RELEASE loFtp
    RELEASE loCert
    CANCEL
ENDIF

* Use this certificate for our TLS mutually authenticated connection:
lnSuccess = loFtp.SetSslClientCert(loCert)
IF (lnSuccess = 0) THEN
    ? loCert.LastErrorText
    RELEASE loFtp
    RELEASE loCert
    CANCEL
ENDIF

* Establish the TLS connection with the FTP server.
lnSuccess = loFtp.ConnectOnly()
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    RELEASE loCert
    CANCEL
ENDIF

* If a login is required, then login with the FTP account login/password.
loFtp.Username = "myLogin"
loFtp.Password = "myPassword"
lnSuccess = loFtp.LoginAfterConnectOnly()
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    RELEASE loCert
    CANCEL
ENDIF

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

* .....
* .....

lnSuccess = loFtp.Disconnect()

RELEASE loFtp
RELEASE loCert