View Full Version : TomCat e supporto SSL
Attualmente sto usando Tomcat 5 per la realizzazione di un Web Service. Il problema è che non mi riesce configurare Tomcat per supporrtare il protocollo di sicurezza SSL. NEl file server.xml ho aggiunto le seguenti righe:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https"
secure="true">
<Factory className=
"org.apache.coyote.tomcat5.CoyoteServerSocketFactory"
keystoreFile="C:\Documents and Settings\gabriele\keystore.jks"
keystorePass="changeit"
clientAuth="false" protocol="TLS" />
</Connector>
Alcune le ho aggiunte, altre le ho scommentate.Ho letto che Tomcat legge i certificati con estensione .keystore, ma quando li creo con l'utility keytool di java essi hanno estensione jks. Non so se è questo il problema. Ho provato anche a creare il connettore HTTPS sulla porta 8443 con l'admin tool di Tomcat ma niente, quando lo riavvio, nel campo del pecorso del keystore mi viene null, lo stesso con la password. Il servizio, alla porta 8443 non parte. Nnn credo sia un problema di librerie java perchè ci sono tutte. Chi mi puo' dire qualcosa?
PEnso che tu abbia fatto un po' di casino tra la configurazione di tomcat 4 e tomcat 5.
Il connettore di default che utilizza tomcat 5 supporta anche SSL, per cui rimuovi la definizione della Factory.
Tomcat legge i certificati (sarebbe meglio dire i keystore dei certificati) con qualunque estensione. ;)
Originariamente inviato da kingv
PEnso che tu abbia fatto un po' di casino tra la configurazione di tomcat 4 e tomcat 5.
Il connettore di default che utilizza tomcat 5 supporta anche SSL, per cui rimuovi la definizione della Factory.
Tomcat legge i certificati (sarebbe meglio dire i keystore dei certificati) con qualunque estensione. ;)
Dove devo mettere il file con estensione jks? Se tolgo la factory gli tolgo sia il percorso che la password. Se la password è diversa da quella di default come gli e la specifico? Grazie.
Originariamente inviato da Unrue
Dove devo mettere il file con estensione jks? Se tolgo la factory gli tolgo sia il percorso che la password. Se la password è diversa da quella di default come gli e la specifico? Grazie.
il percorso specificalo con l'attributo "keystoreFile" nel tag Connector, la password con "keystorePass".
ciao a tutti,
io avrei bisogno di far si che Tomcat accetti connessioni SSL e per far questo ho letto la guida e dice di aggiungere un Connector dentro il file server.xml. Ora questo file si trova in /etc/tomcat ed è accessibile solo da root; sono diventato root ed ho modificato il file in questione 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?
up!
Il problema non è lo stesso che ho io, potevi aprire un'altro post. Adesso risponderanno a te e non a me.
up!
posta l'output del comando:
keytool -list -v -keystore /root/server.keystore
cmq ha ragione Unrue, apri un tuo thread ;)
Enter keystore password: pippoSTORE
Keystore type: jks
Keystore provider: SUN
Your keystore contains 2 entries
Alias name: tomcat
Creation date: May 6, 2005
Entry type: trustedCertEntry
Owner: CN="andrea cardelli ", OU=Unknown, O=antani, L=roma, ST=rm, C=italia
Issuer: CN="andrea cardelli ", OU=Unknown, O=antani, L=roma, ST=rm, C=italia
Serial number: 427ab9ca
Valid from: Fri May 06 00:26:50 GMT 2005 until: Thu Aug 04 00:26:50 GMT 2005
Certificate fingerprints:
MD5: 86:12:E6:ED:20:BD:2E:BC:54:62:D4:16:33:E7:5C:CE
SHA1: F9:5A:60:3A:6D:06:CE:B2:C3:0B:D5:CE:0C:8C:8A:0B:D1:C3:4B:75
*******************************************
*******************************************
Alias name: server
Creation date: May 6, 2005
Entry type: keyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=marco cardelli, OU=Unknown, O=supercazzola, L=roma, ST=rm, C=italia
Issuer: CN=marco cardelli, OU=Unknown, O=supercazzola, L=roma, ST=rm, C=italia
Serial number: 427ab8c4
Valid from: Fri May 06 00:22:28 GMT 2005 until: Thu Aug 04 00:22:28 GMT 2005
Certificate fingerprints:
MD5: 92:E0:F4:0A:4D:25:92:5D:23:E3:04:24:60:BC:CC:B7
SHA1: D8:27:5B:8C:8E:14:9D:C6:6E:CC:BA:5E:9D:D2:AE:70:7A:8D:83:2E
*******************************************
*******************************************
penso che tomcat cerchi la chiave con l'alias "tomcat" ( e tra l'altro guardando nella documentazione non mi sembra esista il modo di specificare un altro alias) e nel tuo keystore per quell'alias non è presente la chiave privata.
rigeneralo con
keytool -genkey -alias tomcat -keyalg RSA -keystore /root/server.keystore
ho cercato aiuto anche da altre parti, ed ho risolto assegnando sia al keystore, che alla chiave contenuta in esso la stessa password :eek: ! C'è una logica in tutto ciò?
ho cercato aiuto anche da altre parti, ed ho risolto assegnando sia al keystore, che alla chiave contenuta in esso la stessa password :eek: ! C'è una logica in tutto ciò?
giusto alla chiave deve accedere per forza e se ha una password diversa da quella del keystore non ha maniera di aprirla.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.