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

Install PFX Certificates and Private Keys to Windows

See more PFX/P12 Examples

Demonstrates how to install the certificates and private keys contained in a PFX to the Windows certificate stores.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Pfx;

public class ChilkatExample {

    public static void main(String[] args) {
        Pfx pfx = new Pfx();

        try {
            pfx.loadPfxFile("qa_data/pfx/test_secret.pfx", "secret");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // See the online reference documentation for more information about the ImportToWindows method.

        // Mark imported privae keys as exportable.
        boolean exportable = true;

        // If userProtected is true, the user is to be notified through a dialog box or other method when certain attempts to use this key are made.
        boolean userProtected = false;

        // If machineKeyset is true, the private keys are stored under the local computer and not under the current user.
        boolean machineKeyset = false;

        // If allowOverwriteKey is true, allow overwrite of the existing key.
        boolean allowOverwriteKey = false;

        // If allowExport is true, then the imported key can later be exported back to a PFX.
        // (It also allows for applications to directly access the private key material.)
        boolean allowExport = true;

        // Indicate where to import types of certs.
        String leafStore = "My";
        String intermediateStore = "CertificationAuthority";
        String rootStore = "AuthRoot";

        try {
            pfx.importToWindows(exportable, userProtected, machineKeyset, allowOverwriteKey, allowExport, leafStore, intermediateStore, rootStore, "");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Show information about the certificates imported
        JsonObject json = new JsonObject();
        pfx.getLastJsonData(json);

        json.setEmitCompact(false);
        System.out.println(json.emit());

        // Sample output:

        // {
        //   "exportable": true,
        //   "userProtected": false,
        //   "machineKeyset": false,
        //   "allowOverwriteKey": false,
        //   "allowExport": true,
        //   "key": [
        //     {
        //       "name": "{F09B755A-1E90-444D-9851-02B86CA14961}",
        //       "storageProvider": "Microsoft Software Key Storage Provider"
        //     }
        //   ],
        //   "cert": [
        //     {
        //       "DN": "...",
        //       "type": "intermediate",
        //       "storeName": "CertificationAuthority",
        //       "imported": true
        //     },
        //     {
        //       "DN": "...",
        //       "type": "root",
        //       "storeName": "AuthRoot",
        //       "imported": true
        //     },
        //     {
        //       "DN": "....",
        //       "type": "leaf",
        //       "storeName": "My",
        //       "keyContainer": "{345D4EAD-B8DD-4150-9A1F-4BC6437E77A2}",
        //       "machineKeyset": true,
        //       "imported": true
        //     }
        //   ]
        // }

        System.out.println("Success.");
    }
}