Apache es un servidor modular. El núcleo del servidor tiene las funcionalidades básicas que se pueden ampliar añadiendo módulos adicionales. Cada módulo agrupa un conjunto de funcionalidades y directivas para configurarlas. Existen múltiples módulos que puedes consultar en http://httpd.apache.org/docs/2.4/mod/
Para saber la versión de apache instalada: apachectl -v
En Apache es posible diferenciar entre:
- Servidor virtual por defecto
Servidor que atiende las peticiones si no se configuran servidores virtuales.
Es el servidor que por defecto hay que guardar los archivos en /var/www/html
000-default.conf es un enlace simbólico a 000-default.conf. Cualquier modificación en uno de ellos afectará al otro.
- Servidores virtuales adicionales
Apache soporta sitios o servidores virtuales basados en IP, en nombres y en puertos, por lo tanto podemos tener múltiples páginas web, tiendas virtuales, blogs, corriendo sobre la misma máquina.
La configuración de cada servidor virtual se realiza utilizado la directiva:
< VirtualHost > . . . < VirtualHost>
En /sites-avalaible vamos a encontrar nuestros sites en etapa de elaboración y en /sites-enabled vamos a encontrar nuestros sites en producción.
/etc/apache2/sites-available/
- Directorio de configuración de sitios virtuales disponibles.
- Contiene los ficheros de configuración de los sitios virtuales disponibles.
- Por defecto esta creado el fichero 000-default.conf con la configuración del denominado servidor virtual por defecto.
/etc/apache2/sites-enabled/
- Directorio de configuración de sitios virtuales habilitados. Es decir, lo que queremos poner en producción. Los enlaces que se encuentren en este directorio serán los servidores virtuales de Apache.
- Contiene enlaces simbólicos a los ficheros de sites-available.
- Se incluyen en el fichero apache2.conf por orden alfabético.
- Por defecto está creado el fichero 000-default.conf que es un enlace al fichero 000-default.conf de sites-availables.
1. Configuración en el Servidor Virtual por defecto del ssl por defecto
1.1. Habilitamos módulo ssl
El módulo ssl permite usar https
a2enmod ssl
Tras instalar el módulo hay que reiniciar apache.

1.2. Consulta el fichero /etc/apache2/ports.conf y observa que si habilitas el modulo ssl el servidor escuchará en el puerto 443.

1.3. Verifica que el servidor escucha por el puerto 443/TCP


1.4. Accede al directorio /etc/apache2/sites-available y observa que existe un fichero denominado default-ssl.conf que contiene la configuración por defecto de un servidor HTTPS.
1.5. Habilita el servidor virtual ssl defecto (default-ssl) de Apache.
a2ensite default-ssl.conf
1.6. Reinicia servidor para que los cambios tengan efecto.
service apache2 reload
1.7. Consulta el fichero /etc/apache2/sites-availabe/default-ssl.conf y observa su configuración. Fíjate en las directivas que habilitan SSL y que definen la ruta del certificado digital que usurará el servidor.
IMPORTANTE: El servidor utiliza por defecto un certificado digital autofirmado que se ha creado al instalar Apache. Un certificado autofirmado no está firmado por una autoridad de certificación (tercera parte de confianza) y por tanto no existen mecanismos automáticos que garanticen su autenticidad. Por eso los navegadores nos pedirán confirmación cuando el servidor se lo envíe.
1.8. Abre el navegador y establece una conexión a https://IP_Servidor
Este es el mensaje de IE
Este es el mensaje de Chrome
Este es el mensaje de Firefox
2. Servidor virtual por defecto con certificado digital autofirmado usando openssl
2.1. Ahora en lugar de poner una IP y acceder al servidor vamos a configurar el fichero hosts de Windows, para no tener que poner la IP, se encuentra en la ruta:
C:WindowsSystem32driversetc
Para ello hay que abrir el bloc de notas de Windows con permisos de administrador y desactivar el antivirus previamente, porque si tenemos un buen antivirus el antivirus debe avisar de un acceso malicioso a un fichero del sistema.
Una vez ubicados en el fichero host, meter IP de vuestra máquina y el dominio que os guste:
2.2. IMPORTANTE !! Si lo que queremos hacer para Linux ya que usamos un Sistema Operativo GNU/Linux con GUI, el fichero se encuentra en /etc/hosts
2.3. Crea un certificado digital autofirmado usando openssl
A. Crea una clave privada RSA de 2048 bits.
openssl genrsa 2048 >/etc/ssl/private/seguro.key
B. Crea el certificado digital autofirmado para 365 días de validez usando la clave privada.
openssl req -new -key /etc/ssl/private/seguro.key -x509 -days 365 -out /etc/ssl/certs/seguro.pem
Los datos a insertar los puedes encontrar en la siguiente figura.
2.4. Modifica el fichero /etc/apache2/sites-available/default-ssl.conf con las siguientes directivas,
SSLCertificateFile /etc/ssl/certs/seguro.pem
SSLCertificateKeyFile /etc/ssl/private/seguro.key
2.5. Reiniciar el Apache.
service apache2 restart
2.6. Ya podemos ver el Certificado Digital Autofimado por nosotros mismos.
2.7. Para ver los servidores virtuales porque puertos escuchan.
apache2ctl -t -D DUMP_VHOSTS