Host virtual de la pràctica 6.2 (Domini docker6-2.gserrat.cat)

De Wiki personal d'en Guillem Serrat
La revisió el 18:05, 20 gen 2026 per Guseba (discussió | contribucions) (Certificació SSL del host virtual)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)

Host virtual

Per la pràctica 6.2 definirem el nom de domini docker6-2.gserrat.cat i l’àlies www.docker6-2.gserrat.cat.

En cas d’accedir al servidor amb algun d’aquests dos noms de domini, redirigirem a l’usuari a “http://127.0.0.1:8089”, és a dir, al localhost al port 8089, on s’està exportant el docker de la pràctica 6.2.

La “/” indica que accedim a l’arrel del directori, és a dir, docker6-2.gserrat.cat i no docker6-2.gserrat.cat/altre.html

Això ho realitzarem especificant la directiva ProxyPass, i mitjançant la directiva ProxyPassReverse reescriu la capçalera de resposta i redireccionament per tal de que mostri el nom de domini

<VirtualHost *: 80>
   ServerName docker6-2.gserrat.cat
   ServerAlias www.docker6-2.gserrat.cat

   ProxyPreserveHost On

   ProxyPass / http://127.0.0.1:8089/
   ProxyPassReverse / http://127.0.0.1:8089/

   # Logs
   ErrorLog ${APACHE_LOG_DIR}/wiki-error. log
   CustomLog ${APACHE_LOG_DIR}/wiki-access.log combined
</VirtualHost>

Certificació SSL del host virtual

La certificació SSL serveix per poder treballar amb HTTPS i poder treballar amb certificats

Abans de certificat un domini hem de:

  • Instal·lar certbot amb l’ordre sudo apt install certbot python3-certbot-apache -y, l’eina que permet emetre certificats gratuits
  • Verificar que el domini ja està creat al DNS
  • Assegurar que el host virtual està activat (sudo a2ensite <hostVirtual>)

Seguidament certificarem el domini docker6-2.gserrat.cat (i també el seu àlies www.docker6-2.gserrat.cat)

sudo certbot --apache -d docker6-2.gserrat.cat -d www.docker6-2.gserrat.cat

Un cop certificat ens generarà un nou host virtual que escoltarà pel port 443 d’Apache i on tindrà els mòduls de certificació en HTTPS

<IfModule mod_ssl.c> <VirtualHost *:443>

   ServerName docker6-2.gserrat.cat
   ServerAlias www.docker6-2.gserrat.cat
   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8089/
   ProxyPassReverse / http://127.0.0.1:8089/
   # Logs
   ErrorLog ${APACHE_LOG_DIR}/wiki-error.log
   CustomLog ${APACHE_LOG_DIR}/wiki-access.log combined

Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/docker6-2.gserrat.cat/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/docker6-2.gserrat.cat/privkey.pem </VirtualHost> </IfModule>

Al host virtual sense certificat ens generarà unes directives de redirecció a HTTPS, així si un usuari entra per HTTP, el host virtual redireccionarà a HTTPS

També és possible deshabilitar el lloc virtual per evitar connexions HTTP, però no és recomanable ja que a l’usuari li apareixerà com que el lloc web no és accessible. La millor pràctica és mantenir el lloc web HTTP actiu amb una redirecció a HTTPS

Tot i això, el codi original es mantindrà dins del host virtual. És recomanable retirar tot el codi i deixar únicament la redirecció.

<VirtualHost *:80>
    ServerName docker6-2.gserrat.cat
    ServerAlias www.docker6-2.gserrat.cat

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.docker6-2.gserrat.cat [OR]
    RewriteCond %{SERVER_NAME} =docker6-2.gserrat.cat
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    # Logs
    ErrorLog ${APACHE_LOG_DIR}/wiki-error.log
    CustomLog ${APACHE_LOG_DIR}/wiki-access.log combined
</VirtualHost