HTTPS amb Let's Encrypt

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Intro

Let's Encrypt és un proveïdor de seguretat web entre d'altres, que ens permet certificats gratuïts.

Pots començar a llegir sobre Let's Encrypt aquí:

https://letsencrypt.org/getting-started/


Requeriments

Per a fer aquesta pràctica has de tenir un domini en un servidor públic. Es recomana utilitzar els registrador de dominis gratuïts www.freenom.com i com a servidors AWS: Amazon Web Services

A més, cal assegurar-se que tens ben configurats els registres DNS:

  • naked domain (per exemple: enric.tk)
  • el del World Wide Web (per exemple: www.enric.tk)


Activem el protocol SSL a Apache

Per activar el protocol cal:

  1. Obrir el port 443 si estem darrera d'un firewall (és el cas del AWS)
  2. Instal·lar el mòdul SSL
    sudo a2enmod ssl
  3. Activar la site default-ssl:
    sudo a2ensite default-ssl.conf

Amb la configuració per defecte ja porta uns certificats autofirmats amb els què el nostre servidor funcionarà, tot i que el navegador avisarà que no és una 'site de confiança.

Els certificats autofirmats solen estar amb el nom snakeoil. Els pots comprovar a l'arxiu /etc/apache2/sites-available/default-ssl.conf:

SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

I ja podem anar a mirar el servidor amb:

https://elmeudomini


Sistema manual

El sistema manual és el més aplicable a qualsevol situació en què hagueu de configurar el vostre Apache amb certificats obtinguts per alguna companyia certificadora com Verisign o Comodo.

Bàsicament el que farem és:

  1. Assegurar-te que tens ben configurats el "naked domain" (elmeudomini.com) i el subdomini web (www.elmeudomini.com) apuntant al teu servidor AWS
  2. Obtenir els certificats de Let's Encrypt
  3. Obrir el port 443 del firewall del servidor AWS
  4. Instal·lar-los al nostre Apache.

Obtenció de certificats

Feu-ho aquí:

https://gethttpsforfree.com/

Pistes:

  • Cal fer-ho tot seguit perquè si no surt bé has de començar de nou des del punt 3.
  • El procés per obtenir el certificat segueix:
    1. Crear un parell de claus publica/privada
    2. Generar una petició de certificat (CSR)
    3. El Big Brother (Let's Encrypt) ens proposa un repte (challenge) per demostrar que nosaltres som els autèntics propietaris del domini en qüestió. Pots fer-ho de 2 maneres (tria una i prou):
      • Publicant un arxiu en una URL concreta que et diu a la web.
      • Posant en marxa un servidor web molt lleuger amb una comanda amb Python que et dona la web.
  • Un cop hagis superat el repte i el Big Brother et reconegui com a propietari, obtindràs els certificats.
  • Descarrega i instal·la els certificats tal i com t'indica la pròpia pàgina de https://gethttpsforfree.com


Sistema automàtic

El sistema automàtic utilitza CERTBOT

https://certbot.eff.org/