El blog de cubells

Certificat SSL al teu django

Acave de llegir una notícia de la EFF, en la qual informa que els nombre de certificats gratuïts ssl de Let's Encrypt és de 50 milions a data de hui i va augmentant. Una passada.

I encara que hi ha paquets per a posar de manera més o menys automàtica el vostre cerdificat al Django, vos explique com ho he fet jo per instal·lar-les en este servidor.

El primer que heu de fer és actualitzar el vostre sistema i instal·lar-vos el control de versions Git:

# apt-get update && apt-get dist-upgrade
# apt-get install git

Una vegada està tot correcte, clonem el repositori Git de Let's Encrypt al nostre servidor:

# git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Ens movem al directori on està el codi font:

# cd /opt/letsencrypt

I executem el següent per iniciar el procés de creació del certificat:

# ./letsencrypt-auto certonly --standalone -d cubells.io -d www.cubells.io

Evidentment, hem de canviar el cubells.io pel nostre domini. Fixeu-vos que s'ha de posar el nostre domini tant amb www com sense www, i a més a més, el domini ha de ser real. Des del gener d'enguany, els subdominis estan permesos.

Durant el procés se vos sol·licitarà que introduïu el vostre correu electrònic per avisar-vos de les renovacions i també que accepteu les condicions del servei.

Una vegada acabat el procés, ja teniu els certificats al directori amb el mateix nom que el domini:

# ls /etc/letsencrypt/live/cubells.io/
cert.pem  chain.pem  fullchain.pem  privkey.pem  README

Ja solamente queden 2 coses. La primera afegir les línies adequades al vostres fitxer de configuració del Nginx, per exemple així:

server {
    ...
    listen 443 default_server;
    listen [::]:443 default_server ipv6only=on;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/cubells.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cubells.io/privkey.pem;

I la segona és afegir si no ho teniu ja, al fitxer settings.py del vostre projecte, les línies adequades per activar ssl:

# ssl
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

Si feu això, ja hauríeu de tindre la vostra web amb django i ssl.

Sense comentaris encara. Comenta ara