Sample code for 30+ languages & platforms
Visual FoxPro

Use Installed Cert on Windows for TLS Client Authentication

See more HTTP Examples

Demonstrates how to use a certificate that has already been installed on a Windows PC for TLS client authentication.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loCert

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

* On Windows, a pre-installed certificate can be loaded in a number of different ways.
* This example loads by the common name:
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadByCommonName("My ECA Medium Assurance Identity Certificate")
IF (lnSuccess <> 1) THEN
    ? loCert.LastErrorText
    RELEASE loHttp
    RELEASE loCert
    CANCEL
ENDIF

* Make sure this certificate has a private key available.  
* It should be a private key such that when the certificate was installed, it was marked as "exportable"
* so that authorized programs are able to access the private key.
IF (loCert.HasPrivateKey() <> 1) THEN
    ? "A private key is needed for TLS client authentication."
    ? "This certificate has no private key."
    RELEASE loHttp
    RELEASE loCert
    CANCEL
ENDIF

* Set the certificate to be used for mutual TLS authentication
* (i.e. sets the client-side certificate for two-way TLS authentication)
lnSuccess = loHttp.SetSslClientCert(loCert)
IF (lnSuccess <> 1) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loCert
    CANCEL
ENDIF

* At this point, the HTTP object instance is setup with the client-side cert, and any SSL/TLS
* connection will automatically use it if the server demands a client-side cert.

RELEASE loHttp
RELEASE loCert