Este artículo brinda instrucciones paso a paso sobre cómo instalar Apache 2 con mod_ssl.
Prefiero instalar Apache desde la fuente, ya que me da más flexibilidad sobre exactamente qué módulos quiero habilitar o deshabilitar, y también puedo actualizar o aplicar un parche inmediatamente después de que la fundación Apache lo publique.
1. Descargar Apache
Descargue Apache desde httpd.apache.org. La versión estable actual es 2.2.17.
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 ~ wget http://www.eng.lsu.edu/mirrors/apache//httpd/httpd-2.2.17.tar.gz tar xvfz httpd-2.2.17.tar.gz
2. 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.2.17 ./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.
3. Habilitar SSL en httpd.conf
El archivo de configuración de Apache httpd.conf se encuentra en /usr/local/apache2/conf.
Quite el comentario de la línea de inclusión httpd-ssl.conf en el archivo /usr/local/apache2/conf/httpd.conf.
# vi /usr/local/apache2/conf/httpd.conf 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.
# egrep 'server.crt|server.key' httpd-ssl.conf SSLCertificateFile "/usr/local/apache2/conf/server.crt" SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
4. Crear archivo server.crt y server.key
Primero, genere server.key usando openssl.
cd ~ 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.
Si no proporciona una contraseña, recibirá el siguiente mensaje de error.
2415:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:849:You must type in 4 to 8191 characters
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
Para obtener más detalles, consulte:Cómo generar una clave SSL, una CSR y un certificado autofirmado para Apache
5. Copie server.key y server.crt
Copie el archivo server.key y server.crt en la ubicación adecuada del directorio de configuración de Apache.
cd ~ cp server.key /usr/local/apache2/conf/ cp server.crt /usr/local/apache2/conf/
6. Inicie apache y verifique SSL
Inicie Apache como se muestra a continuación.
/usr/local/apache2/bin/apachectl start
Esto le pedirá que ingrese la contraseña de su clave privada.
Apache/2.2.17 mod_ssl/2.2.17 (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.
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}