Cómo activar SSL en un servidor Apache

Vamos a ver cómo activar SSL en un servidor Apache bajo un sistema GNU/Linux. Yo lo he probado en la Raspberry Pi en la que tengo instalado un servidor Apache con varios servicios, entre ellos NextCloud (mi propia nube). Cada vez que entraba en la configuración me aparecía un cartel con el siguiente texto:

Está ingresando a este sitio de internet vía HTTP. Le sugerimos enérgicamente que configure su servidor que utilice HTTPS como se describe en nuestros consejos de seguridad.

Para poder entrar por HTTPS y así evitar que te puedan robar la contraseña de tu cuenta de NextCloud o de cualquier otro servicio que tengas instalado, hay que seguir los siguientes pasos.

Suponemos que ya tienes instalado el servidor y que funciona pudiendo ver las páginas alojadas desde un navegador.

TRUCO: Algunas líneas son demasiado largas y se salen del margen del blog. Si quieres seleccionar toda la línea para copiarla y luego pegarla en una terminal puedes hacerlo con un tripe clic.

Vamos a crear la carpeta donde guardaremos los certificados:

sudo mkdir /etc/apache2/ssl

Ahora vamos a generar los certificados que serán válidos por 3 años (1095 dias) y los guardaremos en la carpeta creada anteriormente:

sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /etc/apache2/ssl/server

Durante la generación de los certificados tendrás que responder una serie de preguntas, la mas importante el la primera en la que tendrás que poner el país donde está alojado el servidor con dos letras (ES para España).

Ahora instalaremos el módulo SSL para Apache con:

sudo a2enmod ssl

Ahora daremos acceso al SSL creando un enlace simbólico:

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Ahora tenemos que editar el fichero 000-default-ssl.conf con

sudo nano /etc/apache2/sites-enabled/000-default-ssl.conf

Y cambiamos las siguientes dos líneas para indicar la carpeta en la que tenemos los certificados:

SSLCertificateFile    /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

Guardamos con Control+O y salimos con Control+X

Por último reiniciamos el servicio:

sudo service apache2 restart

No olvides abrir el puerto 443 en el router si quieres acceder desde fuera de la red local.

El navegador avisará de que el certificado no es seguro ya que lo hemos generado nosotros y no somos una autoridad certificadora pero la seguridad de los datos transferidos entre el servidor y el cliente estarán garantizados. Pulsa en opciones avanzadas y acceder de todos modos.

Es recomendable usar HTTPS para cualquier página en la que tengas que introducir una contraseña o PIN.

Basado en un artículo de Charle’s Blog

Deja un comentario

Las cookies de este sitio se usan para personalizar el contenido y los anuncios, para ofrecer funciones de medios sociales y para analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales, de publicidad y de análisis web. Más información

Las opciones de cookie en este sitio web están configuradas para "permitir cookies" para ofrecerte una mejor experiéncia de navegación. Si sigues utilizando este sitio web sin cambiar tus opciones o haces clic en "Aceptar" estarás consintiendo las cookies de este sitio. Cómo usa Google los datos cuando utilizas los sitios web de nuestros partners

Cerrar