AutoIt
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
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.