Sample code for 30+ languages & platforms
AutoIt

Load Particular CA Certs into a Java KeyStore

See more Java KeyStore (JKS) Examples

Opens a PEM file containing many CA root certificates, and creates a Java keystore containing a subset of the certificates.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oJks = ObjCreate("Chilkat.JavaKeyStore")

$oTroots = ObjCreate("Chilkat.TrustedRoots")

; Load certificates from a file.
$bSuccess = $oTroots.LoadCaCertsPem("qa_data/curl_cacert.pem")
If ($bSuccess <> True) Then
    ConsoleWrite($oTroots.LastErrorText & @CRLF)
    Exit
EndIf

$oSbDn = ObjCreate("Chilkat.StringBuilder")
$oSbAlias = ObjCreate("Chilkat.StringBuilder")
Local $bCaseSensitive = False

Local $i = 0
Local $iNumCerts = $oTroots.NumCerts
Local $iNumAdded = 0
While ($i < $iNumCerts)
Local $oCacert = $oTroots.GetCert($i)
    $oSbDn.Clear 
    $oSbDn.Append($oCacert.SubjectDN)
    If ($oSbDn.Contains("Entrust.net",$bCaseSensitive) = True) Then
        ConsoleWrite($oCacert.SubjectDN & @CRLF)

        ; The alias is an arbitrary unique string for each cert in the JKS.
        $oSbAlias.Clear 
        $oSbAlias.Append("cacert_")
        $oSbAlias.AppendInt($i + 1)
        $oJks.AddTrustedCert($oCacert,$oSbAlias.GetAsString())
        $iNumAdded = $iNumAdded + 1
    EndIf

    $i = $i + 1
Wend

; Verify the number of certs in the JKS equals the number we added.
Local $iNumJksCerts = $oJks.NumTrustedCerts
ConsoleWrite("NumTrustedCerts = " & $iNumJksCerts & @CRLF)
If ($iNumJksCerts <> $iNumAdded) Then
    ConsoleWrite("Something is amiss!" & @CRLF)
    Exit
EndIf

; Save the JKS.
$bSuccess = $oJks.ToFile("myPassword","qa_data/jks/entrust_caCerts.jks")
If ($bSuccess <> True) Then
    ConsoleWrite($oJks.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("Success." & @CRLF)

; The output of this program when tested was:

; C=US, O=Entrust.net, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Secure Server Certification Authority
; O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
; C=US, O="Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, OU="(c) 2006 Entrust, Inc.", CN=Entrust Root Certification Authority
; NumTrustedCerts = 3
; Success.