Instalar certificado SSL HTTPS Certbot en Ubuntu

Hay unos cuantos sitios que ofrecen certificado SSL de forma gratuita. Nosotros usaremos Certbot.

La Web de Certbot está muy bien preparada para facilitar la instalación. Pide con qué servidor Web y sistema operativo se hará llevándote a la página con las instrucciones precisas para el entorno que hemos dado.

  • Entramos en la Web: https://certbot.eff.org
Aquí le hemos dicho que usaremos Nginx de servidor Web y Ubuntu 18.04 bionic
  • Hay que tener instalado snap para la instalación de Certbot. Snap es como un gestor de aplicaciones parecido a apt: apt install snapd
  • Luego instalamos lo básico de snap: sudo snap install core; sudo snap refresh core
  • Nos aseguramos de que no estaba certbot instalado de antes:
    sudo apt-get remove certbot
  • Instalamos certbot: sudo snap install --classic certbot
  • Creamos un enlace simbólico para que el comando esté visible: sudo ln -s /snap/bin/certbot /usr/bin/certbot
  • Y creamos en certificado para Nginx: sudo certbot certonly --nginx
  • Seguimos las instrucciones que básicamente son aceptar unas cosas, poner el correo-e donde queremos que nos envíen las incidencias (micorreo@klo.es) y ponemos el dominio que queremos que sea https (por ejemplo, misubdom.klo.es).
  • Esto creará una configuración en el fichero .conf de nginx preparada para el certificado.
  • Podemos probar la renovación del certificado de forma manual: sudo certbot renew --dry-run
  • Y ya podremos probar el sitio: Por ejemplo, https://odoo.klo.es

NOTA: Ocurre que puede ser que no funcione una vez hecho esto. Hay que asegurarse de que en /etc/nginx/sites-enabled/ se quite (yo lo muevo al directorio superior) el fichero "default" y lo sustituiremos por uno creado para la ocasión, en mi caso "odoo.conf" que contendrá:

# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}

# http to https redirection
server {
listen 80;
server_name odoo.sibbaris.es;
return 301 https://odoo.sibbaris.es$request_uri;
}

server {
listen 443 ssl;
server_name odoo.sibbaris.es;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;

# SSL
ssl_certificate /etc/letsencrypt/live/odoo.sibbaris.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/odoo.sibbaris.es/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/odoo.sibbaris.es/chain.pem;

# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

# Request for root domain
location / {
proxy_redirect off;
proxy_pass http://odooserver;
}

# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odooserver;
}

# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}

OJO: Hay que sustituir el dominio y nombres pertinentes. Esto está hecho para un servidor con Odoo.

Se reinicia nginx y ya debe de funcionar:

sudo service nginx stop

sudo service nginx start

Los comentarios están cerrados.