Finally, debugging an with try-error I have got the correct configuration. ------------------------------------------------------ <VirtualHost *:443> ServerAdmin [EMAIL PROTECTED] ServerSignature On
SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem SSLVerifyClient optional_no_ca SSLCipherSuite ALL:!ADH:!EXP56:RC4+RSA:+HIGH:+MEDIUM:+LOW: +SSLv2:+EXP:+eNULL SSLOptions +ExportCertData +StdEnvVars JkExtractSSL On JkMount /ovt ajp13_worker JkMount /ovt/* ajp13_worker </VirtualHost> -------------------------------------------------------- And then, this attributes are available in request: "javax.servlet.request.X509Certificate" "javax.servlet.request.ssl_session" "javax.servlet.request.cipher_suite" For example: request.getAttribute("javax.servlet.request.cipher_suite"); Hope it helps. El vie, 05-10-2007 a las 09:08 +0200, Josué Alcalde González escribió: > Hello. > > I would like to get some advise about a new application I am developing. > > It needs SSL with client certificate and it will be written in java and > deployed in Tomcat 6 with java 6. > > The server will be shared with other applications in java, php and > perhaps other. > > Now, it is a ubuntu 6.06 server with an apache 2.0 instalation, a tomcat > 6.0 and a mod_jk 1.2.14. > > There are some applications writen in php and a java aplication. The > java application is served by apache using mod_jk. It uses SSL but it > doesn't need client certificate. SSL is only configured in Apache. > Tomcat 6 uses normal connections (8080, 8009) which are closed. > > This works perfectly but my next application will need client auth using > a X509Certificate and I need a way to get it in my Servlets. > > I have read some documentation in google and I have try it. > > First, I configured a Virtual Host with Apache > > --------------------------------------------------------- > <VirtualHost *:443> > ServerAdmin [EMAIL PROTECTED] > ServerSignature On > > SSLEngine On > SSLCertificateFile /etc/apache2/ssl/apache.pem > SSLVerifyClient optional_no_ca > > JkExtractSSL On > JkMount /ovt ajp13_worker > JkMount /ovt/* ajp13_worker > </VirtualHost> > --------------------------------------------------------- > > Then, I made a Servlet to try it: > > ----------------------------------------------------------- > // Display the cipher suite in use > String cipherSuite = (String) > request.getAttribute("javax.net.ssl.cipher_suite"); > out.println("Cipher Suite: " + cipherSuite); > > // Display the client's certificates, if there are any > if (cipherSuite != null) { > X509Certificate certChain[] = (X509Certificate[]) > request.getAttribute("javax.net.ssl.peer_certificates"); > if (certChain != null) { > for (int i = 0; i < certChain.length; i++) { > out.println ("Client Certificate [" + i + "] = " + > certChain[i].toString()); > } > } > ----------------------------------------------------------- > > And it didn't work. CipherSuite is always null. > > I haven't configured anything in tomcat. As I have read, it should work > but it is obvious I am missing something. > > I would like to manage SSL with Apache better than using java keystores, > if it is possible. > > Also, I would like to have an application which does not need apache to > work and which works perfectly in tomcat standalone. > > -- _______________________________________________ Josué Alcalde González [EMAIL PROTECTED] Dpto. Desarrollo CSA - Centro Regional de Servicios Avanzados C/ López Bravo, 1 Pol. Ind. Villalonquéjar (Burgos) Tel. (+34) 947 256 250 Fax. (+34) 947 256 583 Web: http://www.csa.es --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]