No když na to teď koukám tak vidím, že otázka byla položená úplně špatně.

Nejedná se mi o nastavení SSL v tomcatu, ale o tu klientskou část, když kontaktuju, např. přes webovou službu, vzdálený server.

O manuálním nastavení vím, ale jde mi o to jestli to nejde nastavit nějak globálně jako nastavuju např. cestu k truststoru -Djavax.net.ssl.trustStore=/cesta/trusted.jks. Nějaký -Djavax.net.ssl.neco=NejakaTrida nebo něco co mi zajistí, že budu mít vždy načtený aktuální keystore ať komunikuju s http serverem, ldap serverem nebo čímkoliv jiným.

díky
TV


On 12/14/2010 08:52 AM, Martin Kuba wrote:
Dne 14.12.2010 07:57, Tomas Vojtech napsal(a):
Ahoj,

v některých aplikacích chceme mít možnost reloadu truststoru za běhu aplikace bez restartu tomcata. Podle toho co jsem našel by to mělo jít implementací vlastního X509TrustManager. Zatím jsem ale
nepřišel na to jak JVM říct, aby ho používala.

Máte s tím někdo zkušenosti? Budu rád za každý tip.

Ahoj,

používaný TrustManager není záležitostí JVM, ale konkrétní třídy.

Třeba pro *klientská* HTTPS spojení zajišťovaná třídou HttpsURLConnection
se dá nastavit vlastní TrustManager pomocí

TrustManager[] trustManagers = new TrustManager[] { myTrustManager };
SSLContext sctx = SSLContext.getInstance("TLS");
sctx.init(null, trustManagers, null);
SSLSocketFactory sf = sctx.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(sf);

Takže pokud je potřeba nastavit vlastní TrustManager Tomcatu, je třeba
zjistit, jak Tomcatímu Connectoru podstrčit vlastní implementaci
SSLSocketFactory. Z toho co jsem vygoogloval to vypadá,
že v server.xml se dá v tagu <Connector> nastavit


<Connector ... SSLImplementation="cz.moje.SSLimplementace">

aspoň podle http://anil-identity.blogspot.com/2007/10/tip-9-change-ssl-implementation-in.html

Podivné ale je, že v referenční dokumentaci pro Tomcat 6.0 na
http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#SSL_Support
tenhle atribut popsán není, je jen v dokumentaci pro Tomcat 3.0 na
http://tomcat.apache.org/tomcat-3.3-doc/tomcat-ssl-howto.html

Popravdě řečeno, nikdy jsem SSL přímo v Tomcatu nepoužíval, vždycky jsem
před Tomcat postavil Apache s mod_ssl a pomocí mod_jk přeposílal
requesty Tomcatu. (Používám mod_jk místo mod_proxy_ajp proto,
že mod_jk umí poslat DN certifikátu vytvořené OpenSSL, kdežto mod_proxy_ajp to neumí.) A mod_ssl si seznam CA kontroluje, aspoň si to myslím, při každém SSL handshake.

Makub

Odpovedet emailem