Sample code for 30+ languages & platforms
Delphi DLL

Add Trusted Certificate to JKS

See more Java KeyStore (JKS) Examples

Adds a trusted certificate to a Java keystore file.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Cert, JavaKeyStore;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
jks: HCkJavaKeyStore;
jksPassword: PWideChar;
jksPath: PWideChar;
cert: HCkCert;
alias: PWideChar;

begin
success := False;

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

jks := CkJavaKeyStore_Create();

jksPassword := 'secret';
jksPath := '/myJksTrustedCerts/cacerts.jks';

// Load the Java keystore from a file.
success := CkJavaKeyStore_LoadFile(jks,jksPassword,jksPath);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkJavaKeyStore__lastErrorText(jks));
    Exit;
  end;

cert := CkCert_Create();

// The cert's LoadFrommFile method can load a certificate from
// virtually any format.  It will automatically determine the format
// and load appropriately.
success := CkCert_LoadFromFile(cert,'/certFiles/myNewTrustedCert.pem');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkCert__lastErrorText(cert));
    Exit;
  end;

// The alias can be anything.  It's basically just a label 
// used within the JKS associated with the entry.  It should
// be unique among aliases within the JKS file.
alias := 'habanero';

success := CkJavaKeyStore_AddTrustedCert(jks,cert,alias);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkJavaKeyStore__lastErrorText(jks));
    Exit;
  end;

// Write the JKS containing the new certificate.
success := CkJavaKeyStore_ToFile(jks,jksPassword,jksPath);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkJavaKeyStore__lastErrorText(jks));
    Exit;
  end;

Memo1.Lines.Add('Added a trusted certificate to the JKS.');

CkJavaKeyStore_Dispose(jks);
CkCert_Dispose(cert);

end;