Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Java e gestione connessioni https / SSL

38 views
Skip to first unread message

Marius Pontmercy

unread,
Mar 5, 2009, 10:39:19 AM3/5/09
to
So che la questione è complessa e richiederebbe un corposo
approfondimento sull'architettura del sistema ma vorrei avere qualche
spunto perchè sto diventando matto.

Situazione: una webapp sotto Tomcat 6 su un server Linux. La webapp ha
essenzialmente due funzioni principali:
1. client che interroga un webservice sviluppato su axis2 con rampart
(una sorta di motore di ricerca)
2. sito su cui gli utenti possono fare l'iscrizione al servizio (per
registrare i loro contenuti sul motore di ricerca). All'atto
dell'avvenuta iscrizione la webapp invia una mail di conferma
all'utente usando javamail.

Sia l'interrogazione al webservice che l'invio della mail devono
necessariamente usare una connessione SSL. La prima azione perchè
inviamo le credenziali degli utenti, la seconda perchè usiamo gli SMTP
di gmail che richiedono la connessione cifrata.

Il problema è il seguente: dopo l'avvio di Tomcat se per prima cosa
faccio un'interrogazione al servizio questa funziona perfettamente ma
poi se provo ad iscrivere un nuovo utente l'invio della mail di
conferma fallisce restituendo questo errore:

javax.mail.MessagingException: Can't send command to SMTP host;
nested exception is:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:
1420)
at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:
1408)
at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:847)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:
384)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)

eccetera....

Se invece come prima azione dopo l'avvio di Tomcat effettuo
l'iscrizione di un utente questa va a buon fine ma poi
l'interrogazione al servizio non funziona, con questo errore:

TP-Processor5 [ERROR] 05/03/2009 07:50:46 -- xxx --
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target -- {from:
xxxxxxxxxxxyyyyyyyyyzzzzzz.java:117)}
TP-Processor5 [ERROR] 05/03/2009 07:50:46 -- KeySearch --
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target -- {from:
zzzzzzyyyyyyyyxxxxxxxxx.java:210)}

Insomma, i certificati e le librerie sono ok, perchè i servizi
funzionano, ma pare che il primo processo che utilizza la connessione
SSL prenda "possesso" della risorsa e non consenta ad altri di
usarla.

Non riesco a capire dove si verifichi l'inceppamento e la
documentazione che ho letto finora non ha fugato i miei dubbi.

Qualche idea?

M

0 new messages