Zertifikat Erstellung
Für die Zertifikat-Erstellung kann das Tool XCA – X Certificate and key management von Christian Hohnstädt verwendet werden: http://xca.sourceforge.net
Um ein Zertifikat zu erstellen, muss zunächst eine neue Datenbank erstellt werden. Als nächstes muss „Neues Zertifikat“ ausgewählt werden. Unter dem Reiter „Inhaber“ können die Inhaberdaten angegeben werden. Der Schlüssel kann unter dem gleichen Reiter durch Auswahl von „Erstelle einen neue Schlüssel“ erstellt werden.
Anschließend kann der Schlüssel als PEM und PKCS#12 exportiert werden.
PKCS #12 definiert ein Dateiformat, das dazu benutzt wird, private Schlüssel mit dem zugehörigen Zertifikat passwortgeschützt zu speichern. [Wikipedia]
Durch Auswahl von „Details anzeigen“ werden die datailierte Zertifikatinformationen angezeigt.
Java Keystore erstellen
Tomcat benötigt für die Verarbeitung des Schlüssels das Java Keystore Format *.jks.
Für die Generierung der *.jks Datei wird das Programm bzw. die Klasse PKCS12Import benötigt, welches sich in der Jar-Datei „jetty-6.1.1.jar“ aus dem Jetty-Projekt befindet.
Download: http://dist.codehaus.org/jetty/jetty-6.1.x/jetty-6.1.1.zip
Mit dem folgenden Befehl kann mit Hilfe des PKCS #12 Zertifikats (aaron_de.p12) der Java Keystore generiert werden:
D:\keys\jetty-6.1.1>java -classpath jetty-6.1.1/lib/jetty-6.1.1.jar org.mortbay.jetty.security.PKCS12Import aaron_de.p12 keystore.jks
Client (Firefox) Zertifikat Importieren
Tomcat Konfiguration
Die Konfiguration wird innerhalb der Datei D:\Programme\apache-tomcat-7.0.27\conf\server.xml vorgenommen.
SSLEnabled="true"
maxThreads="150"
scheme="https"
clientAuth="false"
sslProtocol="TLS"
acceptCount="100"
disableUploadTimeout="true"
enableLookups="false"
keystoreFile="D:\keys\keystore.jks"
keystorePass="geheim"
protocol="org.apache.coyote.http11.Http11NioProtocol"
secure="true" />
protocol=“HTTP/1.1″
connectionTimeout=“20000″
redirectPort=“8443″ />
Die Beschreibung der Attribute sind unter der folgenden URL aufgeführt:
http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL_Support
SSL Verbindungsaufbau (https://localhost:8443/)
Falls alles nach Plan gelaufen ist, sollte die folgende Seite angezeigt werden: