Sample code for 30+ languages & platforms
React Native 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 React Native Downloads

React Native
import { Cert, FileAccess, JavaKeyStore } from '@chilkat/react-native'

function chilkatExample() {
  // This requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const jks = new JavaKeyStore();

  const 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 {
    console.log(jks.lastErrorText);
    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.
  const fac = new FileAccess();
  try {
    fac.openForWrite('/pemFiles/caCerts.pem');
  } catch {
    console.log(fac.lastErrorText);
    return;
  }

  const numCerts = jks.numTrustedCerts;

  const cert = new Cert();
  let pem = '';

  // Iterate over the trusted certs, get the PEM for each,
  // and append it to the output file.
  let 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 {
      console.log(fac.lastErrorText);
      return;
    }

    i++;
  }

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

  console.log('Trusted certificates saved to PEM.');
}