Newsgroup: it.comp.java
Titolo: Tomcat ed SSL

Ciao a tutti,
io avrei bisogno di far si che Tomcat accetti connessioni SSL e per far
questo ho letto la guida sul sito di Tomcat che dice di aggiungere un
Connector dentro il file server.xml. Io uso Tomcat 4.1 e come jdk ho
Blackdown 1.4 (che in teoria dovrebbe essere compatibile con quello
della sun). Sono in ambiente linux. Il file server.xml l'ho modificato
in questo modo:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8443" minProcessors="5" maxProcessors="75"
               enableLookups="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               useURIValidationHack="false"
disableUploadTimeout="true">
               <Factory
className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
               keystoreFile="/root/server.keystore"
               keystorePass="pippoKS"
               keystoreType="JKS"
               clientAuth="false" protocol="TLS" />
</Connector>
In quanto ho un jdk 1.4, non c'è bisogno di scaricare jsse (Java
Secure Socket Extension), dal sito della Sun. Ma io l'ho fatto lo
stesso, ed ho preso i 3 file che mi servono (jsse.jar, jcert.jar,
jnet.jar), e li ho buttati sotto tomcat/common/lib. Ma facendo delle
prove con o senza queste librerie ho constatato che non cambia nulla ed
il mio errore quando do il comando /tomcat/bin/sh catalina.sh run, è
sempre :
Using CATALINA_BASE:   /opt/jakarta-tomcat-4.1.31
Using CATALINA_HOME:   /opt/jakarta-tomcat-4.1.31
Using CATALINA_TMPDIR: /opt/jakarta-tomcat-4.1.31/temp
Using JAVA_HOME:       /opt/blackdown-jdk-1.4.2.01
May 5, 2005 2:34:42 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
May 5, 2005 2:34:42 PM org.apache.coyote.http11.Http11Protocol init
SEVERE: Error initializing endpoint
java.io.IOException: Cannot recover key
        at
org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14SocketFactory.java:127)
        at
org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:88)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:259)
        at
org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:137)
        at
org.apache.coyote.tomcat4.CoyoteConnector.initialize(CoyoteConnector.java:1238)
        at
org.apache.catalina.core.StandardService.initialize(StandardService.java:532)
        at
org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2199)
        at
org.apache.catalina.startup.Catalina.start(Catalina.java:462)
        at
org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
        at
org.apache.catalina.startup.Catalina.process(Catalina.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
Catalina.start: LifecycleException:  Protocol handler initialization
failed: java.io.IOException: Cannot recover key
LifecycleException:  Protocol handler initialization failed:
java.io.IOException: Cannot recover key
        at
org.apache.coyote.tomcat4.CoyoteConnector.initialize(CoyoteConnector.java:1240)
        at
org.apache.catalina.core.StandardService.initialize(StandardService.java:532)
        at
org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2199)
        at
org.apache.catalina.startup.Catalina.start(Catalina.java:462)
        at
org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
        at
org.apache.catalina.startup.Catalina.process(Catalina.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
Catalina.stop: LifecycleException:  This server has not yet been
started
LifecycleException:  This server has not yet been started
        at
org.apache.catalina.core.StandardServer.stop(StandardServer.java:2166)
        at
org.apache.catalina.startup.Catalina.start(Catalina.java:494)
        at
org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
        at
org.apache.catalina.startup.Catalina.process(Catalina.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
Qualche idea? Non so davvero dove sbattere la testa.

marco.c...@gmail.com
 wrote:

ma te la sei creata la chiave da utilizzare (con keytool),perchè sembra che
tomcat non trovi la chiave con cui criptare/decriptare le connessioni!
Inoltre devi anche configurare le servlet per accettare la connessione ssl.
Spero di averti aiutato
Ciao
giovanni