Keytool Zertifikatanforderung und Chain

Keytool Zertifikatsanforderung und Chain

Keystore erstellen und Zertifikate importieren

Bevor wir eine Zertifikatanfrage überhaupt erstellen können, benötigen wir einen Keystore sowie einen privaten Schlüssel (Keypair). Auf Basis des privaten Schlüssels werden wir im Nachgang eine Zertifikatanforderung (Certificate Request) erstellen.

Die Story: Mein Kollege betreut einen TomCat und benötigt für die Kommunikation ein gültiges SSL Zertifikat, signiert durch die interne Zertifizierungsstelle.

Keytool Zertifikatsanforderung und Chain

Da er einen TomCat betreut lag der Einsatz des Java Keytools nahe. Zuerst erzeugt er einen Keystore sowie einen privaten Schlüssel. Die Schlüsselllänge beträgt 4096 Bit und soll 20 Jahre gültig sein, etwas übetrieben ich weiß.

keytool -genkey -v -keystore C:\KeyStore\Webserver.p12 -alias Webserver -keyalg RSA -keysize 4096 -validity 7300

Keytool Zertifikatsanforderung und Chain

Der Keystore wurde erstellt.

Keystore Webserver

Als nächstes erstellt er auf Basis des privaten Schlüssels eine Zertifikatsanfrage für seinen TomCat Webserver. Die Anfrage enthält den Namen des Webservices sowie die IP-Adresse. Die Gültigkeit soll 2 Jahre betragen. Der Gültigkeitszeitraum braucht nicht angegeben werden, denn der wird durch die Vorlage (Template) der internen Zertifizierungsstelle bestimmt.

keytool -certreq -alias Webserver -keyalg RSA -keystore C:\KeyStore\Webserver.p12 -file C:\KeyStore\WEBSRV1.csr -dname “CN=websrv1.dwp.local” -ext SAN=”DNS:websrv1.dwp.local,ip:172.21.150.6″ -keyalg RSA -keysize 2048 -validity 730

Keytool create certificate request

Hier sehen wir die beiden Dateien, den Keystore sowie die Zertifikatsanfrage (CSR).

Keystore und CSR

Die Zertifikastanfrage übergibt er zur Signierung an die interne Zertifizierungsstelle.

CSR signieren

Die signierte Zertifikatsanfrage erhält er zurück.

Keytool signiert durch interne PKI

Damit das signierte Zertifikat im Keystore seine gültig erhalten kann, muss er zuvor das Root- und SubCA Zertifkat der internen Zertifizierungsstelle importieren. Das Passwort für den Keystore sollte aus Sicherheitsgründen nicht mitgegeben werden.

Import RootCA SubCA in Keystore

Import des Root-Zertifikats

keytool -importcert -trustcacerts -keystore C:\KeyStore\Webserver.p12 -alias RootCA -file C:\KeyStore\RootCA.cer -storepass autobahn

Import Root Keystore

Import des Sub-Zertifikats

keytool -importcert -trustcacerts -keystore C:\KeyStore\Webserver.p12 -alias SubCA -file C:\KeyStore\SubCA.cer -storepass autobahn

Import Sub Keystore

Zum Abschluß importiert er das durch die interne Zertifizierungsstelle ausgestellte (signierte Zertifikatsanforderung) Zertifikat.

keytool -import -alias WEBSRV1 -keystore C:\KeyStore\Webserver.p12 -trustcacerts -file C:\KeyStore\WebSRV1.cer

Import Certificate to Keystore P12

Der Keystore ist fertig und einsatz bereit.

Keytool Argumente