Instalar un certificado autofirmado en Apache

Apache2

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

https en apache

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.

a2enmod ssl
a2enmod ssl

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

ports.conf
ports.conf

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

netstat -ltun
netstat -ltun
nmap localhost
nmap localhost

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

 

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies ACEPTAR

Aviso de cookies