Configuración del protocolo HTTPS para el acceso a una aplicación web

Índice

Solicitud de los certificados con Let’s Encrypt

Para solicitar un certificado se usa la herramienta Certbot.

sudo apt install certbot

Para solicitar un certificado de tipo comodín (para todos los virtual hosts de un dominio) se debe usar la opción manual del modo certonly.

sudo certbot certonly --manual -d *.javihuete.site

La salida de este comando indica un registro DNS de tipo TXT que se debe añadir en nuestro DNS. Tras verificar nuestra identidad a través de este método se recibe el certificado en el VPS.

Este tipo de certificación no habilita la renovación automática en el servidor web, así que antes de que expire el certificado se debe renovar de forma manual.

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

Configuración de HTTPS en Nginx

La configuración HTTPS de las aplicaciones desplegadas en el servidor web de Nginx se puede establecer para todos los virtual host en el fichero /etc/nginx/conf.d/default.conf o en cada uno de los ficheros de configuración de cada virtual host en /etc/nginx/sites-available.

En el fichero de configuración se sustituyen las líneas que indicaban que el virtual host escucha por el puerto 80 por estas líneas que hacen que escuche por el puerto 443 y habilita así la conexión https.

server {
        listen 443 ssl;
        server_name www.javihuete.site;
        ssl_certificate /etc/letsencrypt/live/javihuete.site/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/javihuete.site/privkey.pem;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers         HIGH:!aNULL:!MD5;
        ...;
}

Para evitar errores en el acceso por HTTP se puede añadir una redirección desde el puerto 80 al 443 en el mismo virtualhost o en otro dedicado exclusivamente a esta redirección

server {
    listen 80;
    server_name  www.javihuete.site;
    server_tokens off;
    return 301 https://$server_name$request_uri;
}

Solución de errores

Si en la configuración de la aplicación web se especifica la URL base de la aplicación, puede ser necesario cambiar el valor de este parámetro para que la aplicación use, por defecto, https en vez de http.

Por ejemplo, en el caso de Moodle, en el fichero /var/www/moodle/config.php hay que hacer este tipo de modificación.

$CFG->wwwroot   = 'https://www.javihuete.site';
$CFG->dataroot  = '/var/www/moodledata';
comments powered by Disqus

Relacionados

Configuración NAT en routers Cisco en GNS3

NAT (Network Address Translation o traducción de direcciones de red) es un mecanismo que consiste en modificar la información de direccionamiento en los paquetes IP que atraviesan un router. En este post se muestra un ejemplo de configuración de este mecanismo en un escenario de GNS3.

Leer

Gestión de redes en Openstack

En este post se muestra un caso práctica de gestión de redes en un escenario de OpenStack formado por una instancia que funciona como router y otra máquina, conectada a una red interna, que cuenta con un servidor web.

Leer

Ejecutar un pipeline de Jenkins con cada actualización de un repositorio

Para que Jenkins ejecute un pipeline cada vez que se actualice un repositorio git se pueden establecer varias configuraciones diferentes. En este caso, se incluye el Jenkinsfile en el repositorio de GitHub.

Leer