Sample code for 30+ languages & platforms
Node.js

SSL Client Certificate

See more Socket/SSL/TLS Examples

Demonstrates how to connect to an SSL server using a client-side certificate, send a simple message, receive a simple response, and disconnect.

Chilkat Node.js Downloads

Node.js
NODEJS_PRELUDE

function chilkatExample() {

    var success = false;

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

    var socket = new chilkat.Socket();

    //  Create an instance of a certificate store object, load a PFX file,
    //  locate the certificate we need, and use it for signing.
    //  (a PFX file may contain more than one certificate.)
    var certStore = new chilkat.CertStore();
    //  The 1st argument is the filename, the 2nd arg is the 
    //  PFX file's password:
    success = certStore.LoadPfxFile("chilkat_secret.pfx","secret");
    if (success !== true) {
        console.log(certStore.LastErrorText);
        return;
    }

    //  Find the certificate by the subject common name:
    var jsonCN = new chilkat.JsonObject();
    jsonCN.UpdateString("CN","cert common name");

    var cert = new chilkat.Cert();
    success = certStore.FindCert(jsonCN,cert);
    if (success == false) {
        console.log(certStore.LastErrorText);
        return;
    }

    success = socket.SetSslClientCert(cert);

    var ssl = true;
    var maxWaitMillisec = 20000;

    //  The SSL server hostname may be an IP address, a domain name,
    //  or "localhost".  You'll need to change this:
    var sslServerHost;
    sslServerHost = "123.123.88.88";
    var sslServerPort = 8123;

    //  Connect to the SSL server:
    success = socket.Connect(sslServerHost,sslServerPort,ssl,maxWaitMillisec);
    if (success !== true) {
        console.log(socket.LastErrorText);
        return;
    }

    //  Set maximum timeouts for reading an writing (in millisec)
    socket.MaxReadIdleMs = 20000;
    socket.MaxSendIdleMs = 20000;

    //  Send a "Hello Server! -EOM-" message:
    success = socket.SendString("Hello Server! -EOM-");
    if (success !== true) {
        console.log(socket.LastErrorText);
        return;
    }

    //  The server (in this example) is going to send a "Hello Client! -EOM-" 
    //  message.  Read it:
    var receivedMsg = socket.ReceiveUntilMatch("-EOM-");
    if (socket.LastMethodSuccess !== true) {
        console.log(socket.LastErrorText);
        return;
    }

    //  Close the connection with the server
    //  Wait a max of 20 seconds (20000 millsec)
    success = socket.Close(20000);

    console.log(receivedMsg);

}

chilkatExample();