Perl
Chilkat2 Perl
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 Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
my $ftp = Chilkat2::Ftp2->new;
$ftp->Hostname('ftp.example.com');
$ftp->Port(21);
# If using implicit TLS, you probably want port 990..
$ftp->Port(990);
# Set this to 0 for implicit TLS, otherwise set to 1 for explicit TLS (where port is typically 21).
$ftp->AuthTls(0);
# Set this to 1 for implicit TLS, otherwise set to 0.
$ftp->Ssl(1);
my $cert = Chilkat2::Cert->new;
my $success = $cert->LoadPfxFile('qa_data/pfx/example.pfx', 'pfx_password');
if (!$success) {
print $cert->LastErrorText, "\n";
exit;
}
# Use this certificate for our TLS mutually authenticated connection:
$success = $ftp->SetSslClientCert($cert);
if (!$success) {
print $cert->LastErrorText, "\n";
exit;
}
# Establish the TLS connection with the FTP server.
$success = $ftp->ConnectOnly();
if (!$success) {
print $ftp->LastErrorText, "\n";
exit;
}
# If a login is required, then login with the FTP account login/password.
$ftp->Username('myLogin');
$ftp->Password('myPassword');
$success = $ftp->LoginAfterConnectOnly();
if (!$success) {
print $ftp->LastErrorText, "\n";
exit;
}
# Do whatever you're doing to do ...
# upload files, download files, etc...
# .....
# .....
$success = $ftp->Disconnect();