Configuración de un servidor web Apache con mod_jk

En lugar de usar un proxy, puede usar mod_jk, que utiliza un conector JK entre Apache y Tomcat. Esto permite combinarlo con mod_rewrite para obtener cualquier tipo de URL externas (OCSP, CRL, etc.) y asignarlas a otras URL en EJBCA.

Esta sección explica cómo usar un Apache con mod_jk antes de EJBCA. El servidor resultante:

  • Muestra EJBCA en http://demo.primekey.se/

  • Requerir un certificado SSL de cliente al acceder a https://demo.primekey.se/, que funciona para la GUI de administración.

Este ejemplo se creó en Ubuntu 64-bit Server 8.10 usando el paquete Apache Web Server 2.2, pero debería ser fácil de adaptar a cualquier sistema capaz de ejecutar Apache.

# sudo apt-get install apache2 libapache2-mod-jk
# vim /etc/libapache2-mod-jk/workers.properties
-----
worker.list=jboss
# Define a worker using ajp13
worker.jboss.port= 8009
worker.jboss.host= 127.0 . 0.1
worker.jboss.type=ajp13
-----
# vim /etc/apache2/sites-available/demo.primekey.se
-----
<VirtualHost demo.primekey.se: 80 >
# We must disable el juego de caracteres default charset or everything will be ISO- 1 - 8859 ,
AddDefaultCharset off
ServerAdmin webmaster @primekey .se
ServerName demo.primekey.se
ServerAlias demo.primekey.se
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkMount /* jboss
JkMount / jboss
</VirtualHost>
<VirtualHost demo.primekey.se: 443 >>
# We must disable el juego de caracteres default charset or everything will be ISO- 1 - 8859 ,
AddDefaultCharset off
ServerAdmin webmaster @primekey .se
ServerName demo.primekey.se
ServerAlias demo.primekey.se
SSLEngine on
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkMount /* jboss
JkMount / jboss
# JkExtractSSL is On by default
# JkExtractSSL On
</VirtualHost>
-----
# vim /etc/apache2/mods-available/ssl.conf
-----
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /etc/apache2/ssl/apache-CA.pem
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLOptions +StdEnvVars +ExportCertData
-----
# vim /etc/apache2/mods-available/jk.load
-----
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
-----

Ahora habilite ssl.load y ssl.conf en /etc/apache2/mods-enabled.

Finalmente, reinicie Apache y acceda a http://demo.primekey.se/ (o https). Tenga en cuenta que se aplican las mismas consideraciones de seguridad que para el uso de proxy.

Para habilitar un conector AJP en JBoss 7 / EAP 6, ejecute el siguiente comando:

/subsystem=web/connector=ajp:add(socket-binding=ajp, protocol= "AJP/1.3" , enabled= true , scheme= "http" )

Si está utilizando respondedores OCSP externos , asegúrese de que la siguiente línea esté incluida en el archivo apache2.conf:

KeepAlive Off

De lo contrario, Apache se bloqueará.

También se recomienda agregar las siguientes líneas a la configuración del host virtual, para permitir especificar solo el nombre del servidor en lugar de la URL completa:

RewriteEngine on
RewriteRule .* /ejbca/publicweb/status/ocsp [PT]
JkMount /ejbca/publicweb/status/ocsp/* ocsp_worker
JkMount /ejbca/publicweb/status/ocsp ocsp_worker