Come rinnovare o installare HTTPS via terminale SSH [Let’s Encrypt]

Come rinnovare o installare HTTPS via terminale SSH [Let’s Encrypt]

Eccovi la procedura completa da seguire per installare o rinnovare manualmente un certificato SSL gratuito con Let’s Encrypt in modo semplice, quasi meccanico: utilizzando una connessione SSH quindi un terminale remoto. Questa procedura è alternativa a quella che si può eseguire anche via FTP e cPanel, che ho descritto in una guida a parte: Come rinnovare HTTPS via cPanel (senza SSH).

Per quello che ci serve, come al solito, procediamo per ordine e cerchiamo di capirci su tutto.

Preliminari

Per eseguire alla perfezione i passi indicati sono richieste conoscenze di base, a livello teorico, di come funzioni SSL, di cosa serva e di come funzioni; ovviamente non servirà sapere ogni cosa nel minimo dettaglio, anche perchè nel dettaglio la questione è complessa e si richiama a concetti avanzati di informatica e crittografia.

Pubblicità:

A livello che ci interessa in questa sede, un certificato SSL serve a proteggere la connessione quando un visitatore si connette al vostro sito web; al tempo stesso, gli fornirà la garanzia di essere nel posto giusto e non in un sito di phishing, ad esempio.

Quindi, per quello che ci interessa:

  1. installeremo un certificato SSL come primo step;
  2. lo andremo a configurare e validare sul dominio in questione via SSH;
  3. saremo felici di aver rinnovato SSL :-)

Ricordo che i certificati scaduti non sono in genere buona cosa, tantomeno i siti sprovvisti di SSL visto che anche i browser si accorgono della mancanza e potrebbero in generale non mostrare proprio il sito, o etichettarlo come insicuro (che per un e-commerce, ad esempio, non è il massimo).

Cosa ci servirà

Per questo tutorial dovrete avere a portata di mano:

Pubblicità:
  1. Un’installazione di Linux Ubuntu 16.04 sul server del vostro sito, con possibilità di eseguire comandi anche da root (sudo)
  2. Un web server Apache attivo e funzionante con il nome di dominio configurato ed il virtual host che specifichi il campoServerName.
  3. l’accesso SSH al dominio / hosting che state configurando.

Come sistema operativo di riferimento terrò conto che stiate utilizzando Ubuntu 16.04; ovviamente se la versione di Linux fosse diversa – ad esempio Debian o CentOS – qualche comando potrà cambiare di conseguenza, ma la sostanza rimane la stessa.

Siamo pronti? Procediamo!

Tophost a 10,99

Installare Let’s Encrypt su Apache via terminale SSH

Come prima cosa facciamo login dentro SSH, inserendo la nostra username e password seguendo questa falsariga:

ssh root@nomesito.it

la password ci verrà richiesta dopo aver confermato, eventualmente, la validità del certificato. Mentre la scriveremo, per motivi di sicurezza non sarà mostrato nulla sul terminale: la cosa è perfettamente normale ed è classica dei sistemi Unix/Linux.

Installare il client Let’s Encrypt

La prima cosa da fare è installare un client per Let’s Encrypt, e la cosa migliore può essere quella di sfruttare il software ufficiale: Certbot, che viene aggiornato e gestito frequentemente da un buon team di sviluppatori. Come prima cosa, quindi, bisognerà aggiungere il repository, quindi daremo il seguente comando:

sudo add-apt-repository ppa:certbot/certbot

seguito dal tasto Invio per confermare (cosa che faremo per ogni comando indicato, e che non ripeterò più nel seguito). Poi sarà necessario aggiornare tutti i pacchetti all’ultima versione:

sudo apt-get update

a questo punto siamo pronti ad installare Certbot con una semplice apt-get:

sudo apt-get install python-certbot-apache

Dopo qualche istante il software per Let’s Encrypt sarà installato.

Impostare il certificato SSL

Il client Certbot è molto utile perchè permette di generare o rigenerare alla scadenza (anche in automatico, come vedremo) un certificato SSL valido per il dominio che gli passate come parametro. Per farlo, basta lanciare certbot da linea di comando per esempio sul dominio tuosito.it:

sudo certbot –apache -d tuosito.it

Attenzione perchè dovrete includere tutte le varianti del vostro nome di dominio, quindi ad esempio sottodomini o versioni con o senza www davanti; il primo parametro dopo -d sarà quello del dominio primario (base domain), quindi come secondo parametro dovrete passare anche la versione con www ad esempio.

Di solito io genero il certificato così, quindi:

sudo certbot –apache -d tuosito.it www.tuosito.it

Il comando andrà a fare quasi tutto in automatico, inclusa l’installazione delle dipendenze necessarie; vi sarà richiesto inoltre di inserire un indirizzo email per recuperare la chiave privata del certificato, e scegliere se volete redirezionare il traffico in modo autonomo via sito (ad esempio htaccess o plugin per HTTPS) oppure preferite farlo fare a certbot in modo automatico. Ovviamente, poi, se avete più siti web sullo stesso server (virtual hosts differenti) sarà necessario ripetere la procedura per ognuno di essi.

Check del certificato SSL

Una volta conclusa l’installazione senza errori, dovreste trovare i file del certificato nella cartella di Ubuntu /etc/letsencrypt/live. Potete verificare che tutto sia stato configurato in modo corretto andando sul sito ssllabs.com oppure sslshopper ed inserendo il nome del vostro dominio: sarà verificata l’integrità, la scadenza e la coerenza del certificato e vi sarà anche dato un “voto” per rappresentarne la qualità (quella di Let’s Encrypt deve essere tipicamente A). Il certificato sarà valido per 90 giorni da quando lo avrete installato.

Arrivati fin qui, il sito dovrebbe funzionare con HTTPS, ed è possibile che debba essere configurato: ad esempio, come accennato, installando un plugin WordPress per HTTPS oppure impostando il redirect 301 da HTTP a HTTPS. Il fatto che HTTPS funzioni e restituisca lucchetto verde dal browser, in sostanza, non vuol dire per forza che sia ben configurato e che gli utenti lo usino.

Come impostare l’auto-rinnovo di HTTPS da terminale SSH

HTTPS scade ogni 90 giorni, usando Let’s Encrypt: per cui potrebbe essere una buona idea impostare l’auto-rinnovo. Molto semplice anche qui: basta impostare un comando

certbot renew

mediante un cron job di Linux. Per controllare che sia tutto ben configurato, potete effettuare un check mediante questo comando:

sudo certbot renew –dry-run

Se non vengono dati errori da qui, è tutto ok e l’autorinnovo sarà ben impostato sul server. A questo punto è necessario riavviare il server perchè le modifiche vengano rilevate dal sito, per cui ad esempio dovrete dare un:

service apache2 restart


Informazioni sull'autore

Salvatore Capolupo

Ingegnere informatico, consulente SEO, copywriter ed ideatore di trovalost.it. Di solito, passo inosservato: e non ne approfitto neanche un po'.
Ti piace questo articolo?

1 voto

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come rinnovare o installare HTTPS via terminale SSH [Let’s Encrypt]

Votato 10 / 10, da 1 utenti