Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Apache SSL again... those variables are getting me mad!

Federico Fernandez Cruz

2003-12-18

Replies:

Sure! This is getting personal... ;-) Apache and Tomcat will not be my
friends anymore! :-D

Well, I'll try to be a little exhaustive just because sometimes I miss
something that is the real point of the question.

Let's go.

My target is an Apache + Tomcat integration using JK2.

Software!
  Redhat 9.0
  Apache 2.0.47 with modssl.
  Tomcat 5.0.16.
  JK2 2.0.2


This is what I have done:

  1. Install apache properly. Configuration is in /etc/httpd
  2. Install tomcat properly. /opt/jakarta-tomcat-5.0.16
  3. Compile JK2 2.0.2 from jakarta-connectors because there is a bug
in the sources of tomcat that avoid recursivity in mappings like
/your_webapp/*
  4. Configuration.
 

In httpd.conf I have added these lines:
#******************************
LoadModule jk2_module modules/mod_jk2.so
#******************************

My workers2.properties looks like this (/etc/httpd/workers2.properties)

[logger]
level=DEBUG

[config:]
file=/etc/httpd/conf/workers2.properties
debug=1
debugEnv=1

[uriMap:]
info=Maps the requests. Options: debug
debug=1

# Alternate file logger
[logger.file:0]
level=DEBUG
file=/var/log/httpd/jk2.log

[shm:]
info=Scoreboard. Required for reconfiguration and status with
multiprocess servers
file=/var/run/jk2.shm
size=1000000
debug=0
disabled=0

[workerEnv:]
info=Global server options
timing=1
debug=1
# Default Native Logger (apache2 or win32 )
# can be overriden to a file logger, useful
# when tracing win32 related issues
logger=logger.file:0

[channel.socket:127.0.0.1:8009]
info=Ajp13 forwarding over socket
debug=1
tomcatId=127.0.0.1:8009

[ajp13:127.0.0.1:8009]
channel=channel.socket:127.0.0.1:8009

[status:status]
info=Status worker, displays runtime informations

[vm:]
info=Parameters used to load a JVM in the server process
#JVM=C:\jdk\jre\bin\hotspot\jvm.dll
OPT=-Djava.class.path=${TOMCAT_HOME}/lib/tomcat-jni.jar;${TOMCAT_HOME}/server/lib/commons-logging.jar
OPT=-Dtomcat.home=${TOMCAT_HOME}
OPT=-Dcatalina.home=${TOMCAT_HOME}
OPT=-Xmx128M
#OPT=-Djava.compiler=NONE
disabled=1

[uri:/jkstatus/*]
info=Display status information and checks the config file for changes.
group=status:
worker=status:status

#*************************************************************************************

In tomcat, my jk2.properties looks like this

#**********************************************************************************************

handler.list=request,container,channelSocket

channelSocket.port=8009
channelSocket.address=127.0.0.1
channelSocket.maxPort=port+10


#**********************************************************************************************


And in server.xml the jk connector is configured as this:
#**********************************************************************************************
<Connector port="8009" protocol="AJP/1.3"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
redirectPort="8443">
  </Connector>
#**********************************************************************************************

In my ssl.conf the configuration is: (UserMan is my web application)
#**********************************************************************************************
<IfModule mod_jk2.c>
<Location /UserMan>
JkUriSet worker ajp13:127.0.0.1:8009
</Location>

<Location /admin>
JkUriSet worker ajp13:127.0.0.1:8009
</Location>

<Location /manager/html>
JkUriSet worker ajp13:127.0.0.1:8009
</Location>
</IfModule>
#**********************************************************************************************

I am using client authentication and everything goes fine. SSL
connection is OK and the server ask the web browser for a client
certificate. And my application is displayed properly! I am happy up to
this moment but...

What about asking for SSL parameters from my webapp?

I am doing something like this inside a JSP file:

String cipher = (String)request.getAttribute("javax.servlet.request.cipher_suite");

Integer keysize = (Integer)request.getAttribute("javax.servlet.request.key_size");

X509Certificate [] certs = (X509Certificate [])request.getAttribute("javax.servlet.request.X509Certificate");

String sessionId = (String)request.getAttribute("javax.servlet.request.ssl_session");

X509Certificate [] certs = (X509Certificate [])request.getAttribute("org.apache.coyote.request.X509Certificate");


I ALLWAYS GET NULL!

What more can I do? Is there anybody that had succeded doing this? What about developers?

Thanks in advance! And sorry for this long post, but...

Thanks again!










---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.