Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Using WS_FTP Self-signed Certificate file (.crt) and Private Key File. (.key)Demonstrates how to use a self-signed certificate created by WS_FTP with Chilkat FTP2. Note: It is usually not necessary for the FTP client to use a client-side certificate. Most FTP servers using SSL and TLS connections (explicit or implicit) do not require client-side certs. In addition, some high-security FTP servers require "real" certificates -- meaning certificates issued by a real certificate authority with a chain of authentication that leads to a trusted root certificate. The certificates created by WS_FTP are self-signed and untrusted.
LOCAL loFtp LOCAL loCertStore LOCAL lnSuccess LOCAL loCert * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Important: Before running this program, convert your * .crt and .key files to a .p12 using OpenSSL: * The command is this: * openssl pkcs12 -export -in test.crt -inkey test.key -out test.p12 * * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Ftp2') loFtp = CreateObject('Chilkat.Ftp2') loFtp.Hostname = "ftp.***.com" loFtp.Port = 21 loFtp.Username = "testLogin" loFtp.Password = "testPassword" * This example will use explict TLS/SSL. * Establish an explicit secure channel after connection * on the standard FTP port 21. loFtp.AuthTls = 1 * The Ssl property is for establishing an implicit SSL connection * on port 990. Because this example uses explicit SSL, it * should remain 0. loFtp.Ssl = 0 * Create an instance of a certificate store object, load a .p12 file, * locate the certificate we need, and use it for signing. * (a P12/PFX file may contain more than one certificate.) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.CertStore') loCertStore = CreateObject('Chilkat.CertStore') * The 1st argument is the filename, the 2nd arg is the * .p12 file's password. (OpenSSL will prompty you to set a password * when converting the .crt and .key into a .p12). lnSuccess = loCertStore.LoadPfxFile("test.p12","secret") IF (lnSuccess <> 1) THEN ? loCertStore.LastErrorText RELEASE loFtp RELEASE loCertStore CANCEL ENDIF loCert = loCertStore.FindCertBySubjectCN("Your cert's common name") IF (loCertStore.LastMethodSuccess = 0) THEN ? loCertStore.LastErrorText RELEASE loFtp RELEASE loCertStore CANCEL ENDIF lnSuccess = loFtp.SetSslClientCert(loCert) RELEASE loCert * Connect and login to the FTP server. lnSuccess = loFtp.Connect() IF (lnSuccess <> 1) THEN ? loFtp.LastErrorText RELEASE loFtp RELEASE loCertStore CANCEL ELSE * LastErrorText contains information even when * successful. This allows you to visually verify * that the secure connection actually occurred. ? loFtp.LastErrorText ENDIF ? "Secure FTP Channel Established!" ? loFtp.LastErrorText * Do whatever you're doing to do ... * upload files, download files, etc... * ... * ... lnSuccess = loFtp.Disconnect() RELEASE loFtp RELEASE loCertStore |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.