Sample code for 30+ languages & platforms
Xbase++

Configure a Socket for Server-Side TLS

See more Socket/SSL/TLS Examples

Demonstrates Socket.InitSslServer, which configures the object for server-side TLS using a server certificate that has access to its private key, then listens for and accepts a TLS connection.

The file path is relative to the application's current working directory. An absolute path may also be used. Supply the path appropriate to your own environment.

Background. A TLS listener presents the configured server certificate during the handshake. When client certificates are required, acceptable CA distinguished names are added before InitSslServer.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oSocket
LOCAL cPfxPassword
LOCAL oCert
LOCAL oConnectedSock

nSuccess := 0

oSocket := CreateObject("Chilkat.Socket")

//  The file path is relative to the application's current working directory.  An absolute path
//  may also be used.  Supply the path appropriate to your own environment.
//  The PFX password should come from a secure source rather than being hard-coded.
cPfxPassword := "myPfxPassword"
oCert := CreateObject("Chilkat.Cert")
nSuccess := oCert:LoadPfxFile("qa_data/server.pfx", cPfxPassword)
IF (nSuccess == 0)
    ? oCert:LastErrorText
    oSocket:destroy()
    oCert:destroy()
    RETURN
ENDIF

//  Configure this object for server-side TLS using the certificate.  The certificate must have
//  access to its corresponding private key.
nSuccess := oSocket:InitSslServer(oCert)
IF (nSuccess == 0)
    ? oSocket:LastErrorText
    oSocket:destroy()
    oCert:destroy()
    RETURN
ENDIF

//  Listen for connections.  Accepted connections will use TLS.
nSuccess := oSocket:BindAndListen(5000, 25)
IF (nSuccess == 0)
    ? oSocket:LastErrorText
    oSocket:destroy()
    oCert:destroy()
    RETURN
ENDIF

oConnectedSock := CreateObject("Chilkat.Socket")
nSuccess := oSocket:AcceptNext(20000, oConnectedSock)
IF (nSuccess == 0)
    ? oSocket:LastErrorText
    oSocket:destroy()
    oCert:destroy()
    oConnectedSock:destroy()
    RETURN
ENDIF

? "Accepted a TLS client connection."

oSocket:destroy()
oCert:destroy()
oConnectedSock:destroy()