This page (revision-19) was last changed on 14-Aug-2015 12:53 by Peter Hormanns 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
19 14-Aug-2015 12:53 6 KB Peter Hormanns to previous keine weiche Verschlüsselung
18 20-Mar-2013 12:55 5 KB Peter Hormanns to previous | to last neues Tag
17 03-May-2012 14:37 5 KB Peter Hormanns to previous | to last rsa2048
16 16-Dec-2011 13:44 5 KB Peter Hormanns to previous | to last leider gibt's blogs.sun.com nicht mehr...
15 17-Dec-2008 15:51 5 KB Peter Hormanns to previous | to last Portecle
14 03-Jul-2008 12:15 5 KB PeterHormanns to previous | to last neue Seite CaCert
13 24-May-2008 22:08 5 KB PeterHormanns to previous | to last commons-ssl
12 19-Feb-2008 21:28 5 KB PeterHormanns to previous | to last Kategorie raus
11 16-Jan-2008 17:09 5 KB PeterHormanns to previous | to last Tagging
10 16-Jan-2008 17:06 5 KB PeterHormanns to previous | to last Tagging
9 10-Dec-2007 12:52 5 KB PeterHormanns to previous | to last SSL-Kommandos
8 09-Dec-2007 16:45 5 KB PeterHormanns to previous | to last SSL Tutorial
7 07-Dec-2007 16:31 5 KB PeterHormanns to previous | to last no more unable to find...
6 05-Nov-2007 10:05 5 KB PeterHormanns to previous | to last Tippfehler
5 01-Nov-2007 13:52 5 KB ThomasBayen to previous | to last Richtige VM unter Debian auswählen
4 16-Dec-2006 23:33 4 KB PeterHormanns to previous | to last KategorieTomcat
3 14-Dec-2006 18:14 4 KB PeterHormanns to previous | to last Kein Link auf hostname
2 20-Oct-2006 19:21 4 KB PeterHormanns to previous | to last Formatiert für JSPWiki, OpenSSL
1 03-Oct-2006 21:29 4 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!!SSLDies>> <<ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.

Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an
und entferne diesen Text.

Vielen Dank!

{{{
= SSL
>>Zertifikat für<<
>>Tomcat erzeugen<< =>>

Wenn man Tomcat als Webserver nutzt, kann man einen HTTPS-Listener
konfigurieren und so über SSL verschlüsselte Verbindungen nutzen.

Mit einigen Einträgen in ''web.xml'' kann man auch dafür sorgen,
daß eine Authentifizierung vorgeschrieben ist. Die
Benutzerdatenbank steht in
''/var/lib/tomcat4/conf/tomcat-users.xml''. Wer eine vernünftige
Sicherheit haben will, sollte über eine Basic-Authentication (oder
Formular-Auth.) hinaus nur noch SSL-Verbindungen annehmen.

Folgender Eintrag gehört dazu in ''/etc/tomcat4/server.xml''.
Eigentlich sollte der laut Doku dort auskommentiert schon stehen,
tat er aber in meiner Debian-Installation nicht.

<<!!Beispiel===>> <<Beispiel >>1<< ===>>

<<{{{
>>  <Connector port="8443"
     maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
     enableLookups="false" disableUploadTimeout="true"
     acceptCount="100" scheme="https" secure="true"
     clientAuth="true" sslProtocol="TLS"
     keystoreFile="/usr/share/tomcat4/.keystore"<<
>>keystorePass="changeit" />
<<}}}>>
<<
!!Beispiel
===
>> <<Beispiel >>2<< ===>>

<<{{{  <pre>>>
 <!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
 <Connector<<
>>className="org.apache.catalina.connector.http.HttpConnector"
          port="8443" minProcessors="5" maxProcessors="75"
          enableLookups="true"
          acceptCount="10" debug="0" scheme="https"<<
>>secure="true">
     <Factory<<
>>className="org.apache.catalina.net.SSLServerSocketFactory"
              clientAuth="false" protocol="TLS"/>
 </Connector>
<<}}}</pre>>>


In der Java-Welt benutzt man für die Verwaltung von
SSL-Zertifikaten das "keytool", das man im "bin"-Verzeichnis des
Java-SDK findet.

Um das nötige Zertifikat zu erzeugen und zu signieren bin ich
folgendermaßen vorgegangen:

1. Key erzeugen mit:
<<  >>
<<{{{
>>  keytool -genkey -keystore /usr/share/tomcat4/.keystore -alias<<
>>tomcat
<<}}}>>
<<
>>Hier genügt es, im Namensfeld <<"common name" >>(auf die Frage "What is your first
and last name?") den Domainnamen anzugeben, also z.B.
"ssl.example.org". Alle anderen Felder werden von CACert nicht
zertifiziert, weil CACert die Angaben nicht prüfen kann. Bei einem
kostenpflichtigen Zertifikat, z.B. von Verisign, sollten die
Angaben natürlich vollständig sein und zertifiziert werden.

2. Einen Zertifikat-Request für die CA exportieren mit:

<<{{{
>>  keytool -certreq -keystore /usr/share/tomcat4/.keystore -alias<<
>>tomcat -file keyrequest.csr
<<}}}>>
<<
>>3. Das Zertifikat signieren. Bei http://cacert.org kann man
Zertifikate kostenlos signieren lassen. Nachteil: Das
Root-Zertifikat von CACert ist bisher nicht in den Browsern
hinterlegt. Daher muss ich die Root-Zertifikate von CACert in
meinen Keystore importieren:

<<{{{
>>  wget http://www.cacert.org/certs/root.crt
 wget http://www.cacert.org/certs/class3.crt
 keytool -import -keystore /usr/share/tomcat4/.keystore -alias<<
>>cacertclass1ca -import -trustcacerts -file root.crt
 keytool -import -keystore /usr/share/tomcat4/.keystore -alias<<
>>cacertclass3ca -import -trustcacerts -file class3.crt
<<}}}>>
<<
>>4. Import des signierten SSL-Zertifikats: Ich speichere das
Zertifikat in einer Datei "cert.pem".

<<{{{
>>  keytool -import -keystore /usr/share/tomcat4/.keystore -v<<
>>-trustcacerts -alias tomcat -file cert.pem
<<}}}>>
<<
>>Das war's schon.

Alternativ kann man natürlich auch mit einem selbstzertifizierten
SSL-Key arbeiten. Dazu fallen die Punkte 2. bis 4. weg. Stattdessen
ruft man auf:

<<{{{
>>  keytool -selfcert -keystore /usr/share/tomcat4/.keystore -alias<<
>>tomcat
<<}}}>>
<<
!!Alternativ

>>kurz-und-bündig-Lösung von Thomas:

<<{{{
>>    keytool -genkey -alias tomcat -keyalg RSA
   mv /root/.keystore /usr/share/tomcat4/
   chown tomcat4 /usr/share/tomcat4/.keystore
   chmod u+r  /usr/share/tomcat4/.keystore
   chmod go-rw  /usr/share/tomcat4/.keystore
<<}}}>>
<<
>>Danach gibt es einen SSL-Zugang zum Tomcat auf Port 8443 (also am
besten mal mit "https://hostname:8443/" probieren).

Mit weiteren Einträgen in der web.xml kann man nun auch dafür
sorgen, daß unsere Web-Applikation nur noch SSL-Verbindungen
annimmt. Natürlich kann man auch die nicht-SSL-Connectoren aus der
server.xml entfernen, was dann für alle Tomcat-Appliaktionen gilt.
Damit hat man die optimale SSL-Sicherheit.


<<!!Client==>> <<Client >>Authentifizierung<< ==>>

Weiterhin können sich auch Clients über ein SSL-Zertifikat beim
Server authentifizieren.

Genaueres dazu findet sich bei entwickler.de:
http://www.entwickler.de/zonen/portale/psecom,id,101,online,832,p,0.html

<<!!Links
vergleiche auch unsere Seite zu OpenSSL

-- PeterHormanns und ThomasBayen
<<}}}