Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.


Członek DUG



Witam,
Mam problem z podłączeniem certyfikatu w tomcat. Mamy już kupiony certyfikat i dostałem dwa pliczki cer i pem.
Nie udało mi się ich podłączyć tak jako każdy plik oddzielnie bo tomcat nie uruchamia się, więc postanowiłem je zaimportować do keystore
Importuję go zgodnie z instrukcję
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
keytool -import -alias root -keystore <your_keystore_filename> \
-trustcacerts -file <filename_of_the_chain_certificate>za boga nie wiem co to jest filename_of_the_chain_certificate czy to jest plik pem ? Bo your_keystore_filename to rozumiem ze to co powstało po wygenerowaniu CSR i ten plik to JKS
Może ktoś z Państwa to robił , bo mnie szlak zalewa i nie wiem jak to ugryźć :)))
Offline







Podobno człowiek...;)








Zrób ssl na rev-proxy - np Lighttpd, lub Nginxie.
Tomcat (wszystkie wersje) mają taką historię lubk bezpieczeństwa, że im więcej zapór go chroni, tym lepiej.
A o ile pamiętam, masz Nginxa, w nim możesz ustawić vhosta z osobnym certyfikatem ssl.
i mozesz w ten sposób nieźle zabezpieczyć Tomcata.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2011-11-24 12:43:44)
Offline



Administrator




Wyszukiwarka google dziś nie działa? ;]
http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html
http://www.sslshopper.com/article-most-common-java- … commands.html
Offline


Członek DUG



działa działa i to świetnie,
Taki szprytny to i ja jestem, problem w tym, ze po różnych kombinacjach i wielu stronach nie znalazłem rozwiązania.
Konfiguracja
<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="/opt/tomcat_6.0.23/server.crt"
SSLCertificateKeyFile="/opt/tomcat_6.0.23/server.pem"
clientAuth="optional" SSLProtocol="TLSv1"/>Miałem taką i takimi babolami mi walił serwer
INFO: Starting Coyote HTTP/1.1 on http-8080
2011-11-18 21:32:14 org.apache.tomcat.util.net.jsse.JSSESocketFactory getStore
SEVERE: Failed to load keystore type JKS with path /opt/tomcat_6.0.23/.keystore due to /opt/tomcat_6.0.23/.keystore (No such file or directory)
java.io.FileNotFoundException: /opt/tomcat_6.0.23/.keystore (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:405)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:296)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:544)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:481)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:156)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565)
at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-11-18 21:32:14 org.apache.coyote.http11.Http11Protocol start
SEVERE: Error starting endpoint
java.io.FileNotFoundException: /opt/tomcat_6.0.23/.keystore (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:405)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:296)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:544)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:481)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:156)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565)
at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-11-18 21:32:14 org.apache.catalina.core.StandardService start
SEVERE: Failed to start connector [Connector[HTTP/1.1-8443]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.io.FileNotFoundException: /opt/tomcat_6.0.23/.keystore (No such file or directory)
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-11-18 21:32:14 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
2011-11-18 21:32:14 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/27 config=null
2011-11-18 21:32:14 org.apache.catalina.startup.Catalina start
INFO: Server startup in 10390 msPotem stwierdziłem że trzeba go zaimportować do keystore za pomocą keytool ale fiołki też są
Konfiguracja
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation
-->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/opt/tomcat_6.0.23/www_rcin_org_pl.jks" keystorePass="qwerty12"
clientAuth="false" sslProtocol="TLS" />to mam takie błędy
2011-11-23 12:38:57 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production
environments was not found on the java.library.path: /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2011-11-23 12:38:57 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
2011-11-23 12:38:58 org.apache.coyote.http11.Http11Protocol init
SEVERE: Error initializing endpoint
java.io.IOException: jsse.invalid_ssl_conf
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:846)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:522)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:156)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1022)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
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:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:310)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:255)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:842)
... 15 more
2011-11-23 12:38:58 org.apache.catalina.core.StandardService initialize
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8443]]
LifecycleException: Protocol handler initialization failed: java.io.IOException: jsse.invalid_ssl_conf
at org.apache.catalina.connector.Connector.initialize(Connector.java:1024)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
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:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2011-11-23 12:38:58 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1404 ms
2011-11-23 12:38:58 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
2011-11-23 12:38:58 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33
2011-11-23 12:38:58 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
2011-11-23 12:38:58 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
2011-11-23 12:38:58 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
2011-11-23 12:38:58 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
2011-11-23 12:38:58 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
2011-11-23 12:38:59 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
2011-11-23 12:38:59 org.apache.coyote.http11.Http11Protocol start
SEVERE: Error starting endpoint
java.io.IOException: jsse.invalid_ssl_conf
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:846)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:522)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:156)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565)
at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:310)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:255)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:842)
... 15 more
2011-11-23 12:38:59 org.apache.catalina.core.StandardService start
SEVERE: Failed to start connector [Connector[HTTP/1.1-8443]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.io.IOException: jsse.invalid_ssl_conf
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-11-23 12:38:59 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
2011-11-23 12:38:59 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/104 config=null
2011-11-23 12:38:59 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1082 msJeśli wygeneruje ten klucz tak to
keytool -import -alias root -keystore /root/download/www_rcin_org_pl.jks -trustcacerts -file /root/download/server.cer
o wywala mi , że certyfikat mam ważny 3 miesiące a ja go kupowałem na 3 lata. i tak w koło macieju :)(
Ostatnio edytowany przez redelek (2011-11-24 13:32:05)
Offline







Podobno człowiek...;)








A na innych serwerach klucz działa poprawnie?
Bo może z certyfikatem jest coś nie tak.
Np generowany jakąś mocno zabytkową wersją openssl, niezbyt kompatybilny z nową wersją.
Albo java może kiepsko znosić taki cert.
Spróbuj dla testu wygenerować własny i porównać działanie z tym kupionym.
Offline


Członek DUG



jak ja sam dla siebie wygeneruję to działa wszystko i jest dobrze.
Jak te certyfikaty co podpisałem u dostawcy dodałem do Apache2 zwykłego to działają poprawnie.
data jest do 2013 wszystko super, a w tomcat same babole . Nie wiem czy mogę go schować za jakiś inny serwer www, bo jest specyficzna aplikacja "dLibra" i nie wiem czy ona sobie z tym poradzi :)
Ostatnio edytowany przez redelek (2011-11-24 14:05:19)
Offline



Administrator




Ja robie tak i zwykle działa:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile=".keystore" keyAlias="tomcat" keystorePass="changeit" keystoreType="JKS" />Wydaje się, że nie podajesz aliasu dla klucza w keystore. W ten sposób nie wiadomo, z którego skorzystać.
Offline







Podobno człowiek...;)








redelek napisał(-a):
jak ja sam dla siebie wygeneruję to działa wszystko i jest dobrze.
Jak te certyfikaty co podpisałem u dostawcy dodałem do Apache2 zwykłego to działają poprawnie.
data jest do 2013 wszystko super, a w tomcat same babole . Nie wiem czy mogę go schować za jakiś inny serwer www, bo jest specyficzna aplikacja "dLibra" i nie wiem czy ona sobie z tym poradzi :)
Nie spróbujesz, nie dowiesz się.
W trybie proxy zarówno Lighttpd jak i Nginx przekazują zapytania GET i POST do docelowego serwera.
Powinno chodzić bez problemu.
Może być zabawa, jeśli aplikacja wymaga adresu IP, z którego przyszło zapytanie, bo zawsze trafi z localhosta 127.0.0.1, ale o ile pamiętam, w Nginxie można było ustawić tryb przeźroczysty, gdzie przekazywał oryginalne IP do Apacha, żeby logi pokazywały oryginalny IP poprawnie.
Wymagało to specjalnego modułu Apacha, (mod_rpaf) o ile pamiętam.
Ale generalnie, odpal, zobacz czy działa, i wio.
Z rozmaitymi Joomlami, Oscommerc'ami, Drupalami i innymi dziadostwami nie ma żadnego problemu, więc nie rozumiem, dlaczego nie miałoby to działać z Tomcatem.
Poza proxy, na takim serwerze założysz certyfikat ssl, ustawisz limity wielkości GET i POST, możesz bez kłopotu filtrować zapytania regexem, zabezpieczając się przed SQL-Injection, XSS, itp.
Dodatkowo praktycznie każdy serwer WWW obsługuje autoryzację, i jak sprawdzisz na home czy nazwie, autoryzacja do phpmyadmina jest realizowana tylko na poziomie serwera www, a nie okienka logowania w phpmyadminie.
Ze wzgledów bezpieczeństwa, w phpmyadminie i modułach php co chwila znajdują się jakieś dziury.
Java pod tym wzgledem za bardzo się od php nie różni.
Tu masz historię błędów i dziur bezpieczeństwa w Tomcacie: http://tomcat.apache.org/security-6.html
A tu sama autoryzacja w twojej wersji Tomcata: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3190
Sama aplikacja też opancerzona nie jest.
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2011-11-24 15:39:00)
Offline