Sample code for 30+ languages & platforms
Java

Backup Windows Current User / Personal Certificates to a .zip

See more Certificates Examples

Demonstrates how to backup the certificates in the Windows registry-based Current User certificate store (in the "Personal" Logical Store as seen in certmgr.msc), to a zip archive. Certificates having an exportable private key are exported to .pfx files. Certificates with no private key, or with a non-exportable private key, are exported to .cer files.

Obviously, this example only runs on Windows computers.

Chilkat Java Downloads

Java
import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    boolean success = false;

    CkCertStore certStore = new CkCertStore();

    boolean readOnly = true;
    success = certStore.OpenCurrentUserStore(readOnly);
    if (!success) {
        System.out.println(certStore.lastErrorText());
        return;
        }

    String pfxPassword = "secret";

    boolean allSuccess = true;
    int numSuccess = 0;

    CkZip zip = new CkZip();
    zip.NewZip("qa_output/personalCerts.zip");

    CkBinData certData = new CkBinData();
    CkStringBuilder sbFilename = new CkStringBuilder();

    // Iterate over the certificates in the Current User store.
    CkCert cert = new CkCert();
    int numCerts = certStore.get_NumCertificates();
    int i = 0;
    while (i < numCerts) {
        certStore.GetCert(i,cert);
        System.out.println("DN = " + cert.subjectDN());

        sbFilename.SetString("cert");
        sbFilename.AppendInt(i+1);

        boolean bHasPrivateKey = cert.HasPrivateKey();
        if ((bHasPrivateKey == true) && (cert.get_PrivateKeyExportable() == true)) {
            // Export to a .pfx
            success = cert.ExportToPfxBd(pfxPassword,true,certData);
            if (success == true) {
                sbFilename.Append(".pfx");
                zip.AddBd(sbFilename.getAsString(),certData);
                }

            }
        else {
            // Export to a .cer
            success = cert.ExportCertDerBd(certData);
            if (success == true) {
                sbFilename.Append(".cer");
                zip.AddBd(sbFilename.getAsString(),certData);
                }

            }

        if (success != true) {
            allSuccess = false;
            }
        else {
            numSuccess = numSuccess+1;
            }

        i = i+1;
        }

    if (numSuccess > 0) {
        success = zip.WriteZipAndClose();
        if (success != true) {
            System.out.println(zip.lastErrorText());
            allSuccess = false;
            }

        }

    System.out.println("All success = " + allSuccess);
  }
}