Inserisci qui la tua pubblicità

Come configurare SSL con Django e Apache

Https facile con let's encrypt

Introduzione --------------- Google ha dichiarato che da **Gennaio 2017** il browser Chrome, usato da circa il 75% dei navigatori web, mostrerà la scritta **“SITO NON SICURO”** nella barra degli indirizzi accanto ai siti che non utilizzano il protocollo https. Pertanto su tutti i siti dove non è attivo il certificato di protezione, l’_https_ sarà barrato in rosso. L’obiettivo principale di Google è quello di far utilizzare il certificato di protezione SSL a tutti i webmaster. Attualmente necessitano maggiormente della protezione tutti quei siti in cui avvengono transazioni di denaro, ma in futuro verrà esteso a tutti i siti web, per una protezione maggiore dei dati sensibili e in generale per rendere il web più sicuro contro attacchi hakers. Cripteremo il nostro sito utilizzando un'autorità di certificazione chiamata Let's Encrypt , un'iniziativa aperta e gratuita che mira a rendere onnipresente la crittografia online. Il processo di crittografia può essere un po 'complicato, quindi l'ho diviso in 5 passaggi: 1. Aggiungendo Let's Encrypt support a Django 2. Installazione ed esecuzione di Certbot 3. Dimostrare la proprietà del sito con la sfida ACME 4. Generazione del certificato di sicurezza con Certbot 1. Aggiungiamo Let's Encrypt a Django ---------------------------------------- Prima di tutto, è importante capire come funziona Let's Encrypt. Quando si richiede un certificato di sicurezza, è necessario dimostrare di essere realmente il proprietario del sito. Questa è chiamata una sfida ACME . La sfida ACME implica che un url chiave di sfida sul tuo sito restituisca una risposta chiave di sfida . Sia la chiave che la risposta sono uniche e sono fornite da Let's Encrypt. Aggiungeremo il supporto per le sfide ACME alla nostra applicazione utilizzando la libreria django-letsencrypt di Urda . La libreria è abbastanza semplice e consente di aggiungere le coppie di chiavi e risposte attraverso l'ambiente di amministrazione Django. Questo esporrà l'url necessario per dimostrare la tua proprietà. Utilizzando pip , eseguire i seguenti comandi per aggiornare l'ambiente Python ei requisiti:
pip installa django-letsencrypt
pip freeze > requirements.txt
In settings.py , aggiungi letsencrypt alle tue app installate:
INSTALLED_APPS  =  [ 
    ...  , 
    'letsencrypt' , 
    ...  , 
]
nfine, esporre gli URL della chiave di verifica aggiornando urls.py con il seguente indirizzo:
urlpatterns  =  [ 
    ... , 
    url ( r '^ \. well-known /' ,  include ( 'letsencrypt.urls' )), 
    ... , 
]
2. Installazione ed esecuzione di Certbot ----------------------------------------- Successivamente installiamo Certbot , il client che recupera il certificato da Let's Encrypt. Sto usando apache e pip, il che rende l'installazione semplice. Apri un terminale ed esegui: preparare installare certbot Nel terminale eseguire il seguente comando e seguire le istruzioni.
sudo certbot certonly --manual
**CertBot** chiederà alcune delle tue informazioni, inclusa la tua email e il nome del dominio . Alla fine produrrà un mucchio di testo, la maggior parte non pertinente alla nostra situazione. Soprattutto, produrrà qualcosa seguendo queste linee:
Create a file containing just this data:

CHALLENGE-KEY

And make it available on your web server at this URL:

http://dominio/.well-known/acme-challenge/CHALLENGE-RESPONSE
Per motivi di leggibilità, ho sostituito gli hash delle chiavi e delle risposte con CHALLENGE-RESPONSE e CHALLENGE-KEY . In pratica questi saranno degli hash complicati, che aggiungerai al tuo back-end. *ricordarsi di sostituire la parola dominio col il proprio sito web 3. Dimostrare la proprietà con ACME ----------------------------------- Nell'amministratore di Django, vai alla nuova sezione Let's Encrypt e aggiungi una nuova richiesta ACME. Incolla la CHALLENGE-KEY e CHALLENGE-RESPONSE nei campi corrispondenti e salva la voce. L'URL della sfida dovrebbe ora essere visibile e corretto. 4. Generazione del certificato di sicurezza con Certbot ------------------------------------------------------- Tornare al terminale e continuare premendo enter. CertBot ora tenterà di accedere all'URL della richiesto. In caso di successo, verrà generato quanto segue:

Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dominio/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dominio/privkey.pem
   Your cert will expire on 2019-04-04. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Rinnovo del certificato ----------------------- Let's Encrypt emette certificati validi per 90 giorni e ti invierà un'e-mail quando stanno per scadere. Dato che hai tutto configurato, è facile (ma non ideale) fare manualmente. Per rinnovarlo automaticamente entrare nel terminale e digitare:
certbot renew
Congratulazioni! ---------------- Il tuo sito dovrebbe essere crittografato.
[email protected]