Sample code for 30+ languages & platforms
Lianja

Convert Java KeyStore to PEM

See more Java KeyStore (JKS) Examples

Loads a Java keystore file and saves the trusted certificate entries to a PEM file.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loJks = createobject("CkJavaKeyStore")

lcJksPassword = "myJksPassword"

// Load the Java keystore from a file.  The JKS file password is used
// to verify the keyed digest that is found at the very end of the keystore.
// It verifies that the keystore has not been modified.
llSuccess = loJks.LoadFile(lcJksPassword,"/someDir/keyStore.jks")
if (llSuccess = .F.) then
    ? loJks.LastErrorText
    release loJks
    return
endif

// Open/create the output PEM file. 
// This example uses Chilkat's file access class for writing the output file.
// You may replace the file I/O lines of code with whatever is most convenient for you.
loFac = createobject("CkFileAccess")
llSuccess = loFac.OpenForWrite("/pemFiles/caCerts.pem")
if (llSuccess = .F.) then
    ? loFac.LastErrorText
    release loJks
    release loFac
    return
endif

lnNumCerts = loJks.NumTrustedCerts

loCert = createobject("CkCert")

// Iterate over the trusted certs, get the PEM for each,
// and append it to the output file.
i = 0
do while i < lnNumCerts
    loJks.TrustedCertAt(i,loCert)

    // Get the certificate in PEM format.  
    lcPem = loCert.ExportCertPem()

    // Append the PEM string to the open file.
    llSuccess = loFac.AppendText(lcPem,"utf-8")
    if (llSuccess <> .T.) then
        ? loFac.LastErrorText
        release loJks
        release loFac
        release loCert
        return
    endif

    i = i + 1
enddo

// Close the output file.
loFac.FileClose()

? "Trusted certificates saved to PEM."


release loJks
release loFac
release loCert