Inhalt
- Weiterführende Informationen
- Key-Generierung und Zertifizierung (X.509)
- Key-Generierung
- (Vorläufige) Selbst-Zertifizierung
- Import eines echten SSL-Zertifikates
- Anzeige der Key-Daten
- Keystore-Datei
- Installation des JSSE in Tomcat
Weiterführende Informationen
Key-Generierung und Zertifizierung (X.509)
Key-Generierung
Schlüsselpaare können mit keytool.exe erzeugt werden, welches mit dem J2SE (siehe java-install.htm) automatisch mit installiert wird (z.B. unter C:\Program Files\Java\jdk1.6\bin\keytool.exe).
Der Key-Pair-Generierungs-Algorithmus muss für SSL für übliche Web-Browser auf RSA umgestellt werden.
Der Alias-Name und die Passwörter sollten für den ersten Versuch tomcat und changeit lauten.
Die dname-Parameter müssen natürlich angepasst werden.
keytool -genkey -v -keyalg RSA -alias tomcat -keypass changeit -storepass changeit
-dname "CN=Torsten Horn, OU=-, O=-, L=Aachen, S=NRW, C=DE"
Bedeutung der Parameter:
keyalg | Key-Pair-Generierungs-Algorithmus (DSA oder RSA) (für SSL: RSA) |
alias | Name des Keystore-Eintrags (für Tomcat: tomcat) |
keypass | Passwort für das Schlüsselpaar |
storepass | Passwort für den gesamten Keystore |
dname | Distinguished Name (X.500) |
CN | Common Name (Vor- und Nachname) |
OU | Organization Unit (Abteilung) |
O | Organization Name (Firmenname) |
L | Locality Name (Ortsname, Stadt) |
S | State Name (Bundesstaat) |
C | Country (Staat) |
(Vorläufige) Selbst-Zertifizierung
keytool -selfcert -v -alias tomcat -storepass changeit
Import eines echten SSL-Zertifikates
X.509-Zertifikate können auch zum Beispiel mit OpenSSL erstellt werden.
Sie müssen von einer CA (Certification Authority) als TTP (Trusted Third Party) beglaubigt werden (z.B. VeriSign, TC TrustCenter, Signtrust, TeleSec, Thawte Consulting).
Ein Zertifikat ist nur für einen Rechnernamen gültig und es kann nur ein Zertifikat auf einem Server installiert werden.
Zertifikate können z.B. folgendermaßen dem Keystore hinzugefügt werden:
keytool -import -v -trustcacerts -alias tomcat -file CERT.pem
Anzeige der Key-Daten
keytool -list -v -storepass changeit
Keystore-Datei
Wurde beim keytool-Kommando kein Zielverzeichnis (per -keystore) angegeben, befindet sich die Keystore-Datei in einem Default-Directory.
Je nach Betriebssystem-Konfiguration kann der Pfad z.B. sein:
user.home/.keystore
C:\Windows\Profiles\<Mein Name>\.keystore
C:\Users\<Mein Name>\.keystore
C:\Dokumente und Einstellungen\<Mein Name>\.keystore
Falls Sie einen Windows-Pfad mit Leerzeichen eingeben wollen, kann dies zu Schwierigkeiten führen.
Eine Lösungsmöglichkeit kann sein, statt der Windows-Verzeichnisnahmen die auch unter
neuen Windows-Versionen noch existenten alten DOS-8.3-Verzeichnisnamen zu verwenden.
Diese können Sie in der Kommandozeilen-Konsole ermitteln mit:
dir /X
Statt zum Beispiel
'C:\Dokumente und Einstellungen\All Users\.keystore' können Sie
C:\DOKUME~1\ALLUSE~1\.keystore
verwenden (bitte die für Sie korrekten 8.3-Namen auf Ihrem PC mit 'dir /X' ermitteln).
Installation des JSSE in Tomcat
Bei J2SE 1.4.x ist JSSE enthalten und braucht eventuell nicht gesondert installiert zu werden.
Bei Tomcat 4.x kann die Installation einfacher sein, wenn die .keystore-Datei in das Tomcat-common-Verzeichnis kopiert wird.
Die folgende Beschreibung gilt für J2SE 1.3.x und Tomcat 3.x:
- Tomcat installieren
(siehe z.B. Windows,
Linux).
- Key und (Selbst-)Zertifikat in Keystore erstellen, wie oben beschrieben.
Die .keystore-Datei muss im User-Verzeichnis des Benutzers gespeichert sein, unter dem Tomcat laufen wird.
Wird Tomcat als Windows-Service betrieben
und ist kein Benutzer eingeloggt, muss die erstellte .keystore-Datei nach
C:\Dokumente und Einstellungen\Default User bzw.
C:\Documents and Settings\Default User kopiert werden.
- Download von JSSE von http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html.
- Zip-Datei (z.B. jsse-1_0_2-gl.zip) entpacken.
- Normalerweise müssen die drei JSSE-Dateien jcert.jar, jnet.jar und jsse.jar nur nach $JAVA_HOME/jre/lib/ext
(z.B. C:\Program Files\Java\jdk1.6\jre\lib\ext) kopiert werden.
Unter bestimmten Voraussetzungen kann es nützlich sein, sie zusätzlich nach $TOMCAT_HOME/lib
(z.B. D:\Tools\Tomcat\lib) zu kopieren.
- In der Datei $JAVA_HOME/jre/lib/security/java.security
(z.B. C:\Program Files\Java\jdk1.6\jre\lib\security\java.security)
die 'List of providers' suchen und die Zeile
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
hinzufügen (dabei die '2' eventuell anpassen).
- In der Datei $TOMCAT_HOME/conf/server.xml
(z.B. D:\Tools\Tomcat\conf\server.xml)
den zweiten Eintrag <Connector ...> ... </Connector> suchen,
dort port="8443" durch port="443" ersetzen,
und die Zeilen '<!--' und '-->' vor und hinter diesem Block entfernen.
- Tomcat neu starten und 'https://localhost' testen (beachten: 'https' statt 'http').
- Ist das Zertificat nur ein unbeglaubigtes Selbst-Zertifikat, erscheint eine Meldung ähnlich zu:
Das Sicherheitszertifikat der Site ist fehlerhaft.
Soll der Vorgang fortgesetzt werden ?
Hier muss mit 'Ja' geantwortet werden. Unter 'Zertifikat anzeigen' können die Daten des Zertifikats geprüft werden.
- Unter den 'Eigenschaften' der angezeigten Web-Seite sollte die SSL-Funktion und das Zertifikat überprüft werden.
- Bei Java-Fehlermeldungen überprüfen Sie, ob die .keystore-Datei im richtigen Verzeichnis gespeichert ist
und ob das Tomcat-Passwort zur .keystore-Datei passt.
Wenn Sie unterschiedliche Passwörter verwenden, müssen Sie dies im 'keystorePass'-Attribut in der Tomcat-'server.xml'-Datei angeben.
Weitere Themen: andere TechDocs
| HTML
| JavaScript
| JSP
| Webanwendungen
© 1998-2007 Torsten Horn, Aachen