GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Apache 2.4.2 desde el origen en CentOS 6.2 con SSL

Si intenta seguir el artículo sobre cómo instalar Apache con SSL que discutimos hace un tiempo, se enfrentará a un problema durante la "creación" debido a la compatibilidad de la versión entre Apache 2.4.4 y las utilidades APR (Apache Portable Runtime Library) que viene con CentOS 6.

Hemos explicado en este artículo cómo resolver ese problema para que la última versión de Apache funcione en CentOS o RedHat.

Asegúrese de tener gcc y openssl-devel instalados.

# yum install gcc
# yum install openssl-devel

También necesita APR de "Apache Portable Runtime Library" para instalar Apache desde la fuente.

Ya tendrá instalados los paquetes "apr" y "apr-util". Instale los paquetes apr-devel y apr-util-devel.

# yum install apr-devel
# yum install apr-util-devel

Nota:En nuestro caso (debido a los problemas de compatibilidad de la versión), los descargaremos e instalaremos manualmente más tarde. Pero, por ahora, sigamos la corriente y veamos qué sucede cuando intentas hacerlo de esta manera.

Descargar Apache

Descargue Apache desde httpd.apache.org. La versión estable actual es 2.4.2.

Una vez que obtenga la URL directa para descargar la última versión estable de Apache, use wget como se muestra a continuación para descargarla directamente a su servidor.

cd /usr/src
wget http://mirror.nyi.net/apache//httpd/httpd-2.4.2.tar.gz
tar xvfz httpd-2.4.2.tar.gz

Instalar Apache con SSL/TLS

Vea todas las opciones de instalación y configuración de Apache disponibles como se muestra a continuación.

cd httpd-2.4.2
./configure --help

Para instalar un módulo de Apache, normalmente diría –enable-{module-name}. Por ejemplo, para instalar SSL con Apache, es –enable-ssl. Para instalar el módulo ldap, es –enable-ldap.

Para desinstalar cualquier módulo predeterminado que viene con Apache, normalmente diría –disable-{module-name}. Por ejemplo, para deshabilitar la autenticación básica en Apache, es –disable-auth-basic

En este ejemplo, instalaremos Apache con todos los módulos predeterminados, con la adición de –enable-ssl (para instalar mod_ssl para compatibilidad con SSL) y –enable-so, que ayuda a cargar módulos en Apache durante el tiempo de ejecución a través de Dynamic Shared. Mecanismo de objeto (DSO), en lugar de requerir una recompilación.

./configure --enable-ssl --enable-so
make
make install

Nota:De forma predeterminada, lo anterior instala Apache en /usr/local/apache2. Si desea cambiar esta ubicación, use la opción –prefix en ./configure.

Reparación de mensajes de error de la utilidad APR

Es posible que no haya enfrentado este problema al instalar una versión anterior de Apache como discutimos hace un tiempo.

Cuando ejecuta "make", es posible que obtenga "rotatelogs.c:(.text+0x5ed):referencia indefinida a `apr_file_link' ” mensaje de error si está haciendo esto en CentOS 6.2 como se muestra a continuación.

# make
rotatelogs.c:298: warning: implicit declaration of function âapr_file_linkâ
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -std=gnu99 -pthread
-o rotatelogs  rotatelogs.lo /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib64/libapr-1.la -lpthread
rotatelogs.o: In function `post_rotate':
rotatelogs.c:(.text+0x5ed): undefined reference to `apr_file_link'
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory `/usr/src/httpd-2.4.2/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/httpd-2.4.2/support'
make: *** [all-recursive] Error 1

Esto se debe a que en CentOS 6, la última versión de APR disponible a través de la instalación de yum es 1.3.9, como se muestra a continuación.

# rpm -qa apr*
apr-1.3.9-3.el6_1.2.x86_64
apr-util-1.3.9-3.el6_0.1.x86_64

Sin embargo, Apache 2.4.2 necesita la última versión de APR (que actualmente es 1.4.6).

Por lo tanto, vaya a la página de descarga de APR y descargue apr y apr-util.

cd /usr/src
wget http://mirror.atlanticmetro.net/apache//apr/apr-1.4.6.tar.gz
wget http://mirror.atlanticmetro.net/apache//apr/apr-util-1.4.1.tar.gz
tar xvfz apr-1.4.6.tar.gz
tar xvfz apr-util-1.4.1.tar.gz

Ahora, debe colocar esta nueva versión de los directorios apr y apr-util (sin el nombre de la versión en el directorio) en el directorio "srclib" ubicado en el directorio httpd-2.4.2 que se creó cuando descomprimió el software apache descargado.

En mi ejemplo, descargué httpd-2.4.2.tar.gz y lo descomprimí en /usr/src. Por lo tanto, necesito colocar el último apr y apr-util en este directorio.

mv apr-1.4.6 /usr/src/httpd-2.4.2/srclib/apr
mv apr-util-1.4.1 /usr/src/httpd-2.4.2/srclib/apr-util

Una vez hecho esto, tenemos que configurarlo y hacerlo de nuevo. Si ejecuta ./configure –help, verá las siguientes opciones relacionadas con APR

# cd /usr/src/httpd-2.4.2
# ./configure --help
  --with-included-apr     Use bundled copies of APR/APR-Util
  --with-apr=PATH         prefix for installed APR or the full path to apr-config
  --with-apr-util=PATH    prefix for installed APU or the full path to apu-config

Si decide instalar apr-1.4.6 y apr-util-1.4.1 en su sistema, debe usar "–with-apr" y "–with-apr-util" y proporcionar la ruta donde instaló estos utilidad.

En este ejemplo, no hicimos eso. es decir, no instalamos apr y apr-util que descargamos. En su lugar, los colocamos en httpd-2.4.2/srclib/apr-util. Entonces, deberíamos usar “–with-included-apr” en ./configure que usará estos apr y apr-util solo para la compilación e instalación de apache.

Entonces, volvamos a hacer ./configure (usando –with-included-apr), make y make install como se muestra a continuación.

./configure --enable-ssl --enable-so --with-included-apr
make
make install

Ahora, make ya no dará el mensaje de error "rotatelogs.c:(.text+0x5ed):referencia indefinida a `apr_file_link".

Habilitar SSL en httpd.conf

El archivo de configuración de Apache httpd.conf se encuentra en /usr/local/apache2/conf.

Descomente la línea de inclusión httpd-ssl.conf y la línea LoadModule ssl_module en el archivo /usr/local/apache2/conf/httpd.conf.

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

Vea httpd-ssl.conf para revisar todas las configuraciones SSL predeterminadas. En la mayoría de los casos, no necesita modificar nada en este archivo.

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

El certificado SSL y la clave son necesarios antes de iniciar Apache. El archivo server.crt y server.key mencionado en httpd-ssl.conf debe crearse antes de continuar.

# cd /usr/local/apache2/conf/extra
# egrep 'server.crt|server.key' httpd-ssl.conf
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

Crear archivo server.crt y server.key

Primero, genere server.key usando openssl.

# cd /usr/src
# openssl genrsa -des3 -out server.key 1024

El comando anterior le pedirá la contraseña. Asegúrese de recordar esta contraseña. Necesitas esto mientras inicias tu Apache más tarde.

A continuación, genere un archivo de solicitud de certificado (server.csr) utilizando el archivo server.key anterior.

# openssl req -new -key server.key -out server.csr

Finalmente, genere un certificado SSL autofirmado (server.crt) utilizando el archivo server.key y server.csr anterior.

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Una vez que haya terminado con los pasos anteriores, verá los siguientes tres archivos en /usr/src

# ls server*
server.crt  server.csr  server.key

Copie el archivo server.key y server.crt en la ubicación adecuada del directorio de configuración de Apache.

cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/

Iniciar Apache

Si recibe el siguiente mensaje de error, asegúrese de descomentar la línea que se muestra a continuación en httpd.conf

# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 51 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so

Si recibe el siguiente mensaje de error, asegúrese de descomentar la línea que se muestra a continuación en httpd.conf

# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 76 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

# vi /usr/local/apache2/conf/httpd.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Finalmente, esto le pedirá que ingrese la contraseña de su clave privada antes de iniciar Apache.

# /usr/local/apache2/bin/apachectl start
Apache/2.4.2 mod_ssl (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server www.example.com:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

Verifique que el proceso httpd de Apache se esté ejecutando en segundo plano

# ps -ef | grep http
root   29529     1  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29530 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29531 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29532 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
root   29616 18260  0 13:09 pts/0 00:00:00 grep http

Para detener apache, use apachectl stop.

# /usr/local/apache2/bin/apachectl stop

Use httpd -l para ver todos los módulos que están compilados dentro del demonio Apache httpd.

# /usr/local/apache2/bin/httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c

Por defecto, Apache SSL se ejecuta en el puerto 443. Abra un navegador web y verifique que puede acceder a su Apache usando https://{your-ip-address}


Linux
  1. Cómo instalar Let's Encrypt con Apache en CentOS 7

  2. ¿Cómo instalar mod security en Centos 7.x con apache?

  3. Cómo instalar Let's Encrypt SSL con Apache en Debian 11

  4. Instale Apache 2 desde la fuente en Linux

  5. Cómo instalar Apache 2 con SSL en Linux (con mod_ssl, openssl)

Cómo instalar Apache con host virtual en CentOS 8

Cómo instalar Apache Tomcat 9 en CentOS 7

Cómo instalar Apache en CentOS 8

Cómo instalar Drupal en CentOS 7 con Apache

Cómo instalar WordPress en CentOS 7.1 con Apache

Cómo instalar Apache con PHP-FPM en CentOS 8