Sample code for 30+ languages & platforms
Java Requires Chilkat v11.0.0+

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.FileAccess;
import com.chilkatsoft.chilkat2.JavaKeyStore;

public class ChilkatExample {

    public static void main(String[] args) {
        // This requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        JavaKeyStore jks = new JavaKeyStore();

        String jksPassword = "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.
        try {
            jks.loadFile(jksPassword, "/someDir/keyStore.jks");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // 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.
        FileAccess fac = new FileAccess();
        try {
            fac.openForWrite("/pemFiles/caCerts.pem");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        int numCerts = jks.getNumTrustedCerts();

        Cert cert = new Cert();
        String pem = "";

        // Iterate over the trusted certs, get the PEM for each,
        // and append it to the output file.
        int i = 0;
        while (i < numCerts) {
            jks.trustedCertAt(i, cert);

            // Get the certificate in PEM format.
            pem = cert.exportCertPem();

            // Append the PEM string to the open file.
            try {
                fac.appendText(pem, "utf-8");
            } catch (ChilkatException e) {
                System.out.println(e.getLastErrorText());
                return;
            }

            i = i + 1;
        }

        // Close the output file.
        fac.fileClose();

        System.out.println("Trusted certificates saved to PEM.");
    }
}