Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Secure FTP with Client CertificateChilkat FTP2 provides the ability to use a client certificate with secure FTP (implicit or explicit SSL/TLS). This example demonstrates how to load a certificate from a .pfx and use it as the client-side SSL cert. Note: Client-side certificates are only needed in situations where the server demands one.
use chilkat; $ftp = new chilkat::CkFtp2(); # Any string unlocks the component for the 1st 30-days. $success = $ftp->UnlockComponent("Anything for 30-day trial"); if ($success != 1) { print $ftp->lastErrorText() . "\n"; exit; } # You may use this account for testing. # This account allows for directory listings and files # to be downloaded. However, file uploads are not allowed. $ftp->put_Hostname("ftp.secureftp-test.com"); $ftp->put_Username("test"); $ftp->put_Password("test"); # Establish an explicit secure channel after connection # on the standard FTP port 21. $ftp->put_AuthTls(1); # The Ssl property is for establishing an implicit SSL connection # on port 990. Do not set it. $ftp->put_Ssl(0); # Load a certificate from a .pfx # A PFX may contain several certs, including the certificates # in a chain of authority. $certStore = new chilkat::CkCertStore(); $password = "***"; # Load the certs from a PFX into an in-memory certificate store: $success = $certStore->LoadPfxFile("chilkat.pfx",$password); if ($success != 1) { print $certStore->lastErrorText() . "\r\n"; exit; } # Find the exact cert we'll use: $cert = $certStore->FindCertBySubject("Chilkat Software, Inc."); if ($cert eq null ) { print "Certificate not found!" . "\r\n"; exit; } # Use this certificate for our secure (SSL/TLS) connection: $ftp->SetSslClientCert($cert); # Connect and login to the FTP server. The connection is # made secure because of the AuthTls setting. $success = $ftp->Connect(); if ($success != 1) { print $ftp->lastErrorText() . "\n"; exit; } else { # LastErrorText contains information even when # successful. This allows you to visually verify # that the secure connection actually occurred. print $ftp->lastErrorText() . "\r\n"; } print "Secure FTP Channel Established!" . "\n"; # Do whatever you're doing to do ... # upload files, download files, etc... $ftp->Disconnect(); # The LastErrorText provides a detailed log of the # SSL connection for both success and failed connections. # Here is an example of a successful connection. # The client certificate is logged as "ClientCertDN": # ChilkatLog: # Connect: # DllDate: Aug 15 2007 # Hostname: ftp.secureftp-test.com # Port: 21 # IdleTimeoutMs: 60000 # ConnectTimeout: 60 # HeartbeatMs: 0 # initialStatus: 220 # initialResponse: 220 FileZilla Server version 0.9.23 beta # converting to secure connection... # ClientCertDN: C=US, S=Illinois, L=Wheaton, O="Chilkat Software, Inc.", OU=Secure Application Development, CN="Chilkat Software, Inc." # SSL Server Certificate not verified. # ConnectionInfo: # protocol: TLS1 # cipher: RC4 # cipherStrength: 128 # hash: MD5 # hashStrength: 128 # keyExchange: RSA # keyExchangeStrength: 1024 # Secure Channel Established. # successfully converted to secure connection... # Features: 211-Features: # MDTM # REST STREAM # SIZE # MLST type*;size*;modify*; # MLSD # AUTH SSL # AUTH TLS # UTF8 # CLNT # MFMT # 211 End # Directory listings are utf-8 # Logging in... # Username: test # Login successful. # Connect successful |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.