• 0510217318
  • [email protected]
SqueezeMindSqueezeMindSqueezeMindSqueezeMind
  • Home
  • Servizi
  • Collaborazioni b2b
  • Ci hanno scelto
  • Blog
Contattaci Adesso
✕

Home » Blog » Guide tecniche » Come creare certificati Let’s Encrypt

Come creare certificati Let’s Encrypt

7 Marzo 2019
Generazione certificati con Let's Encrypt

Let’s Encrypt è una certification authority famosa per la fornitura di certificati SSL gratuiti e validi.

In questa guida vedremo come creare certificati Let’s Encrypt su Ubuntu, sia per singolo dominio che in wildcard. Inoltre vedremo come gestire la rognosa parte dei rinnovi dietro Cloudflare.

Indice dei Contenuti

Installazione di Cerbot

Come prima cosa occorre installare Certbot, uno script Python per l’automazione dei processi di creazione, validazione e rinnovo dei certificati Let’s Encrypt.

Prima però è consigliato procedere ad aggiornare i repository e ad installare l’interprete Python con i seguenti comandi:

sudo apt-get update
sudo apt-get install python-minimal

Controllare che la versione di Python installata sia quanto meno la 2.7:

python --version

A questo punto installare git che utilizzeremo per prelevare la versione più recente di Certbot:

sudo apt-get install git-core
git --version

Una volta installato ed appurato il funzionamento di git, accedere alla directory /opt e scaricare Certbot al suo interno:

cd /opt
sudo git clone https://github.com/certbot/certbot.git
cd certbot

Creazione di un certificato SSL single domain

A questo punto non rimane che creare il primo certificato SSL. Per farlo basta lanciare il seguente comando all’interno della directory /opt/certbot avendo l’accortezza di sostituire l’indirizzo email e il dominio con quello oggetto del certificato:

sudo ./certbot-auto certonly --manual --preferred-challenges=dns --email [email protected] --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d miodominio.it

Di seguito la risposta di Certbot:

Requesting to rerun ./certbot-auto with root privileges...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for miodominio.it

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.miodominio.it with the following value:

8kG1HBNFP8BGeD6QWi9Y3MU2PgjNY9UY9YIIvKBqW8M

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

A questo punto Certbot ti chiede di creare sul file di zona di miodominio.it un record DNS di tipo TXT dal nome _acme-challenge e dal valore 8kG1HBNFP8BGeD6QWi9Y3MU2PgjNY9UY9YIIvKBqW8M

A questo punto Certbot chiede che per il dominio in oggetto venga creato un record DNS di tipo TXT per verificare che i creatori del certificato siano anche i gestori del dominio.

Una volta creato il DNS assicurarsi che si sia propagato sul web prima di cliccare Invio. Per verificare la propagazione del DNS è possibile utilizzare il comando dig come segue:

dig _acme-challenge.miodominio.it TXT

In caso di risposta come la seguente, il DNS può definirsi propagato:

;; ANSWER SECTION:
_acme-challenge.miodominio.it. 300 IN TXT "8kG1HBNFP8BGeD6QWi9Y3MU2PgjNY9UY9YIIvKBqW8M"

A questo punto non rimane che cliccare Invio per proseguire con Certbot:

Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/miodominio.it/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/miodominio.it/privkey.pem
Your cert will expire on 2019-06-04. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto 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

Il certificato è stato creato con successo:

  • Path certificato: /etc/letsencrypt/live/miodominio.it/fullchain.pem
  • Path chiave segreta: /etc/letsencrypt/live/miodominio.it/privkey.pem
  • Path file CA: /etc/letsencrypt/live/miodominio.it/chain.pem

Creazione di un certificato SSL wildcard

Un certificato wildcard consente di rendere sicura non solo la comunicazione del dominio principale ma anche di tutti i suoi sottodomini. Vediamo dunque come creare un certificato SSL wildcard con Let’s Encrypt.

La procedura è sostanzialmente identica a quella già vista con la differenza che il dominio deve essere preceduto dal carattere asterisco come segue:

sudo ./certbot-auto certonly --manual --preferred-challenges=dns --email [email protected] --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.miodominio.it

Per il resto la procedura è identica.

Come aggiornare i certificati SSL Let’s Encrypt

I certificati SSL non sono validi per sempre, bensì hanno una durata di circa 90 giorni. Quando un certificato è prossimo alla scadenza, Let’s Encrypt invierà una email notifica all’indirizzo email specificato in fase di creazione del certificato.

Per rinnovare il certificato basta eseguire la stessa e identica procedura utilizzata per crearlo. Il nuovo certificato andrà a sostituire automaticamente il vecchio.

Configurare Cloudflare con Let’s Encrypt

Se i domini sono ospitati su Cloudflare, è possibile automatizzare la validazione via DNS utilizzando il modulo certbot-dns-cloudflare. Per installare il modulo lanciare i seguenti comandi:

apt-get install python-pip
pip install certbot-dns-cloudflare

Fatto questo creare in una location sicura un file dal nome cloudflare.ini il cui contenuto deve essere il seguente

# Cloudflare API credentials used by Certbot
dns_cloudflare_email = email account Cloudflare qui
dns_cloudflare_api_key = Global API Key Cloudflare qui

Fatto questo non resta che creare/aggiornare un certificato Let’s Encrypt con il seguente comando:

certbot certonly --dns-cloudflare --dns-cloudflare-credentials cloudflare.ini --email [email protected] --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.miodominio.com

Configurare i certificati SSL su Postfix

Anche qui la procedura è semplicissima. Basta modificare il file /etc/postfix/main.cf e modificare/inserire le seguenti direttive:

smtpd_tls_key_file = /etc/letsencrypt/live/miodominio.it/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/miodominio.it/fullchain.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/miodominio.it/chain.pem

Riavviare Postfix:

service postfix restart

Configurare i certificati SSL su Dovecot

La stessa procedura vista per Postfix si ripete per Dovecot. Basta infatti modificare il file /etc/dovecot/dovecot.conf e modificare/inserire le seguenti direttive:

ssl_ca = </etc/letsencrypt/live/miodominio.it/chain.pem
ssl_cert = </etc/letsencrypt/live/miodominio.it/fullchain.pem
ssl_key = </etc/letsencrypt/live/miodominio.it/privkey.pem

Riavviare Dovecot:

service dovecot restart

Configurare i certificati SSL su Nginx

Aprire il file di configurazione del dominio configurato su Nginx, ad esempio /etc/nginx/site-enabled/miodominio.it ed aggiungere/modificare le seguenti direttive:

server {

  listen 443 ssl;
  server_name www.miodominio.it miodominio.it;

  ssl_certificate /etc/letsencrypt/live/miodominio.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/miodominio.it/privkey.pem;

  ...

Salvare e ricaricare le configurazioni:

sudo service nginx reload

Configurare i certificati SSL su Apache

Anche su Apache, come Nginx, modificare il file del virtual host, ad esempio /etc/apache2/site-enabled/miodominio.it.conf ed aggiungere/modificare le seguenti direttive:

<VirtualHost *:443>

  ServerName miodominio.it
  ServerAlias www.miodominio.it

  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/miodominio.it/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/miodominio.it/privkey.pem

  ...

Salvare e ricaricare le configurazioni:

sudo service apache2 reload
Questo articolo ti è tornato utile? Condividilo su

Ti consigliamo di leggere anche:

come creare una macchina virtuale
26 Novembre 2019

Come creare una macchina virtuale


Leggi l'articolo
come fare un backup
29 Luglio 2019

Come fare un backup: guida definitiva


Leggi l'articolo
convertire da kindle a pdf o epub
20 Luglio 2019

Come convertire online libri Kindle in pdf o epub


Leggi l'articolo
Come scegliere un hosting web
15 Luglio 2019

Web Hosting: guida alla scelta di un hosting per siti web


Leggi l'articolo
Abbinamento colori sito web
8 Luglio 2019

Guida all’abbinamento dei colori per un sito web


Leggi l'articolo
fail2ban per Wordpress
1 Luglio 2019

Proteggere WordPress da attacchi bruteforce con Fail2ban


Leggi l'articolo

Cerca sul sito

✕

Iscriviti alla Newsletter

Ricevi i prossimi articoli comodamente via email. Non riceverai mail pubblicità o spam.

La nostra web agency

SqueezeMind è un’agenzia web specializzata nella realizzazione di siti web professionali ed in strategie di web marketing. Il nostro obiettivo è portare le aziende online con strumenti in grado di aumentare i fatturati analiticamente. Per farlo ci serviamo solo dei migliori professionisti in grado di offrire un servizio di eccellente qualità e risultati garantiti.

Entra in contatto con noi

Hai un progetto web e vuoi parlarne con noi? Contattaci ad uno dei seguenti recapiti:
  • 0510217318
  • [email protected]

Categorie del blog

  • Guide Web Marketing
  • Guide SEO
  • Guide E-commerce
  • Guide tecniche
  • Marketing Ristorazione
  • Guide Social Media Marketing

Le nostre certificazioni

google-partner
© SqueezeMind srl - P. IVA 06334160824
capitale sociale € 10.000 i.v. - Tutti i diritti riservati
  • Lavora con noi
  • Mappa del sito
  • Dove siamo
  • Contatti
  • Informativa Privacy
  • Cookie Policy
Contattaci Adesso
Gestisci Consenso
Per fornire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Il consenso a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su alcune caratteristiche e funzioni.
Funzionale Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici. L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.
  • Gestisci opzioni
  • Gestisci servizi
  • Gestisci {vendor_count} fornitori
  • Per saperne di più su questi scopi
Visualizza le preferenze
  • {title}
  • {title}
  • {title}