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
Der Keystore wurde erstellt.
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
Hier sehen wir die beiden Dateien, den Keystore sowie die Zertifikatsanfrage (CSR).
Die Zertifikastanfrage übergibt er zur Signierung an die interne Zertifizierungsstelle.
Die signierte Zertifikatsanfrage erhält er zurück.
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 des Root-Zertifikats
keytool -importcert -trustcacerts -keystore C:\KeyStore\Webserver.p12 -alias RootCA -file C:\KeyStore\RootCA.cer -storepass autobahn
Import des Sub-Zertifikats
keytool -importcert -trustcacerts -keystore C:\KeyStore\Webserver.p12 -alias SubCA -file C:\KeyStore\SubCA.cer -storepass autobahn
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
Der Keystore ist fertig und einsatz bereit.