Instalar libreria ARP en tomcat


APR es un componente de Apache que le termine a tomcat usar OPENSSL en lugar de JSSE., que permite a Tomcar soportar conexiones TLS, JSSE es una libreria de seguridad SSL  implementada por los creadores de java mientras openssl es un sistema SSL de seguridad general que esta residente en el sistema operativo.

Para trafico mediano y bajo las demandas bajo JSSE suele ser  suficientes pero cuando se necesita alto trafico la cosa es a otro precio sobre todo teniendo en cuenta que las aplicaciones están bajo https generando una gran demanda del sistema, en este escenario openssl es mas eficiente y permite ser ajustado para obtener el máximo rendimiento de conexiones y trafico, corre mas rápido y consume menos recursos de cpu y memoria.

Lo que se como inconveniente acerca de APR es que su instalación requiere un poco de esfuerzo mientras JESSE viene de fabrica.

Aquí dejo la forma de instalar ARP, que como se puede ver tampoco es que se nada del otro mundo, solo se tiene que tener claros algunos conceptos muy básicos.

Los pasos que se dan a continuación son necesarios ya que las librerías que se generan dependen del sistema operativo y de librerías independientes como son ARP y Openssl.

Usualmente en las distribuciones de tomcat viene una archivo tar.  que contiene todo lo necesario para compilar la librería e instalarla. 

Nota : Tengo instalado tomcat en /usr/local.

Los pasos son similares colocando en el directorio que usted tenga en sus sistema para su distribución de tomcat, yo he probado esta instalación en las versiones 9 y 10 con java 1.8 y 11 solo teniendo en cuenta los prefijos necesarios de acuerdo las diferentes versiones de arp  y java que requieren como se muestra a continuación.

# sudo cd /usr/local/tomcat/bin

encontramos el archivo: tomcat-native.tar.gz

lo descomprimimos

# sudo tar zxvfPp tomcat-native.tar.gz

Ingresamos a la carpeta native que es donde se encuentran los archivos que vamos necesitar, antes de proceder a la configuración del sistema debemos instalar la librería APR y Openssl en su formato devel que se requiere para poder compilar las librería apr que van a ser necesarias para instalarlas  en tomcat. 

# sudo yum install apr-devel openssl-devel

(yo uso yum en mis intancias EC2, centos 7 y Fedora y dnf en Rocky)

Me ubico en la carpeta de interés.

# sudo cd /usr/local/tomcat/bin/tomcat-native-1.2.16-src/native

para conseguir lo prefijos que requiere el comando ./configure, uso el comando # sudo locate

# sudo locate apr

# sudo locate openssl

# sudo java -version  //jpara determinar cual versión de java tengo en mi sistema.

# sudo locate openjdk

# sudo ./configure --with-apr=/usr/bin/apr-1-config --with-ssl=/usr/include/openssl --prefix=/usr/tomcat/lib --with-java-home=/usr/lib/jvm/java-1.8.0-openjdk

# sudo make

# sudo make install

Si todo quedo bien debe mostrar u semejante al siguinte:

----------------------------------------------------------------------

Libraries have been installed en:  /usr/tomcat/lib/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
-------------------------------------------------------------------------------------------

verificar las librerías:

# sudo ls -l /usr/tomcat/lib/lib

total 1232
-rwxr-xr-x    1 root root         1040 mar  8 00:00 libtcnative-1.la
lrwxrwxrwx 1 root root            23 mar  8 00:00 libtcnative-1.so -> libtcnative-1.so.0.2.16
lrwxrwxrwx 1 root root            23 mar  8 00:00 libtcnative-1.so.0 -> libtcnative-1.so.0.2.16
-rwxr-xr-x    1 root root  1256752 mar  8 00:00 libtcnative-1.so.0.2.16
drwxr-xr-x   2 root root            27 mar  8 00:00 pkgconfig


La dirección donde quedaron las librerías puede cambiar dependiendo de sus sistema pero lo que es importante es determinar donde el sistema las deposito para poder encontrarlas y colocarlas en las carpetas que tomcat defina como carpetas validas para ubicaras y que el servidor tomcat las reconozca.

pueden ser en :/usr/java/packeges
               /lib64
               /usr/lib
u otras que sus sistema defina como validas, al momento de iniciar el servidor tomcat ,en el archivo: /usr/local/tomcat/catalina.out puede encontrar una linea similar a la siguiente: donde le indica cuales son esas carpetas reconocidas

/isr/local/tomcat/logd/catalina.out
----------------------------------------------------------------------------------------------
INFORMACIÓN [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent La biblioteca nativa de Apache Tomcat basada en ARP que per\
mite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
----------------------------------------------------------------------------------------------
esa linea está mostrando donde  debe colocar las librerías que se generen al hora de la compilación de arp.

Por ejemplo:

# sudo cd /usr/lib
cp -rf /usr/tomcat/lib/lib /* .

iniciamos tomcat

# sudo /usr/local/bin/startup.sh

si todo quedo correcto podemos ver en el archivo

# sudo less /usr/local/tomcat/logs/catalina.out

algo similar a esto.

---------------------------------------------------------------------------------------------------------
INFORMACIÓN [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Cargada la biblioteca nativa APR de Apache Tomcat [1.2.16]  con la versión APR [1.7.2].
INFORMACIÓN [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Capacidades APR: IPv6 [true], enviar fichero [true], aceptar filtros [false], aleatorio [true].
INFORMACIÓN [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
INFORMACIÓN [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL inicializado correctamente [OpenSSL 1.0.2k-fips  26 Jan 2017]
------------------------------------------------------------------------------------------------------------

indicando que APR fue reconocida con éxito..








Comentarios

Entradas populares