Sample code for 30+ languages & platforms
PowerShell

Client Certificate in REST (USB Token or Smartcard)

See more REST Examples

Demonstrates how to use a client certificate with a REST connection where the certificate and private key are located on a USB token or smart card.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

# This example shows how to use the Chilkat socket object's connection.
$rest = New-Object Chilkat.Rest
$socket = New-Object Chilkat.Socket

# Set the certificate to be used for mutual TLS authentication
$cert = New-Object Chilkat.Cert

# If the smartcard or token requires a PIN...
$cert.SmartCardPin = "000000"

$success = $cert.LoadFromSmartcard("")
if ($success -ne $true) {
    $($cert.LastErrorText)
    exit
}

$success = $socket.SetSslClientCert($cert)
if ($success -ne $true) {
    $($socket.LastErrorText)
    exit
}

# Establish the connection using the socket object (with client certificate authentication).
$bTls = $true
$port = 443
$maxWaitMs = 5000
$success = $socket.Connect("www.example.com",$port,$bTls,$maxWaitMs)
if ($success -ne $true) {
    $("Connect Failure Error Code: " + $socket.ConnectFailReason)
    $($socket.LastErrorText)
    exit
}

$bAutoReconnect = $true

# Use the connection:
$success = $rest.UseConnection($socket,$bAutoReconnect)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

# At this point we are connected and can make REST calls...
# For example..
$responseJson = $rest.FullRequestNoBody("GET","/someQuery")
if ($rest.LastMethodSuccess -ne $true) {
    $($rest.LastErrorText)
    exit
}