1. Die Zertifikate liegen als Array vor
// Die Zertifikate, aus denen der Zertifikatspfad gebildet werden soll.
Certificate[] certs;

// Instanziiere eine CertificateFactory fr X.509-Zertifikate.
CertificateFactory cf = CertificateFactory.getInstance("X.509");

// Extrahiere und konstruiere den Zertifikatspfad
// aus dem Zertifikatsarray.
CertPath cp = cf.generateCertPath(Arrays.asList(certs));

2. Die Zertifikate liegen in einem KeyStore vor
// Erzeuge einen KeyStore des Typs JKS.
KeyStore ks = KeyStore.getInstance("JKS");

// ffne den KeyStore.
ks.load(new FileInputStream("KeyStore.jks"), "changeIt!".toCharArray());

// Lade die Zertifikate, die unter dem
// Aliasnamen Alice gespeichert sind.
Certificate[] certArray = ks.getCertificateChain("Alice");

An dieser Stelle weiter verfahren wie unter Punkt 1 beschrieben. Zur Erzeugung und Verwaltung von KeyStores kann anhand des im JRE enthaltenen kommandozeilenorientierten Tools <I>keytool<I> erfolgen.

3. Die Zertifikate liegen in einer Datei gebndelt vor.

// ffne die Datei, die den Zertifikatspfad enthlt. 
FileInputStream fis = new FileInputStream("CertPath.p7b");

// Generiere den Zertifikatspfad daraus.
CertPath certPath = CertificateFactory.generateCertPath(fis);

Wenn das Dateiformat bekannt ist, kann dieses auch direkt angegeben und der Zertifikatspfad mit dem folgenden Methodenaufruf erzeugt werden:

CertPath certPath = CertificateFactory.generateCertPath(fis, "PKCS7");
