Che cos’è HTTPS: come funziona e a cosa serve

Aggiornato il: 17-08-2022 11:00
In questo articolo andremo ad immergerci nelle profondità  del mondo HTTPS, per chiarire alcuni aspetti che potrebbero non essere scontati per la maggioranza di noi, cercando anche riscontri pratici in quello che racconteremo all’interno dei contesti web più usuali (il tuo blog aziendale, il sito della tua società , e cosଠvia).

Definizione HTTPS

HTTPS è la versione criptata di HTTP, e significa per protocollo di trasferimento ipertestuale sicuro (Hypertext Transfer Protocol Secure, acronimo per l’appunto di HTTPS). Perchè venga utilizzato è subito detto: consente di effettuare comunicazioni sicure a livello internet, quindi (ma non solo) sul web e sui siti web che consultiamo ogni giorno. HTTP, ovvero il protocollo di trasferimento ipertestuale, è stato per molti anni la sostanziale backbone o “spina dorsale” del WEB cosଠcome abbiamo imparato a conoscerlo. Un protocollo stabilisce nel dettaglio come debba avvenire la comunicazione tra due o più nodi, secondo politiche ben precise, in modo da consentire la consegna di pagine web ai client. HTTP sta venendo progressivamente rimpiazzato da HTTPS, che è la sua versione più veloce, sicura e crittografata.

Cosa cambia tra SSL, TLS e HTTPS

Il protocollo di comunicazione HTTPS è criptato, dicevamo, utilizzando una tecnologia consolidata come Transport Layer Security (TLS) che in precedenza era nota come Secure Sockets Layer (SSL). SSL o TLS sono quindi il “motore” che fa funzionare il tutto, mentre HTTPS è “solo” il protocollo utilizzato dalle varie app e dai siti web.

Come “comunicano” client e server via HTTPS (request)

ALla base di tutto bisogna sapere che esistono client (i nostri computer o cellulari connessi al web) e server (le macchine che ad esempio fanno funzionare web service, siti web o app): noi in pratica comunichiamo usando le reti come mezzo trasmissivo fisico, e HTTPS viene invece sfruttato a livello applicativo. HTTP e HTTPS funzionano mediante quelle che vengono chiamate, in gergo, request. Una request o richiesta è un modo per comunicare (vedi video successivo), e la cosa importante da sapere è che essa viene creata dal browser dell’utente quando l’utente esegue una certa interazione con un sito web (ad esempio, decide di aprirlo oppure preme un pulsante o invia dati in un form).

La request è in genere considerata a livello programmativo come una singola richiesta, che potrebbe non avere un corrispettivo “visuale” ma essere, ad esempio, una parte di un’operazione più complicata: ad esempio se inviamo i dati della nostra carta di credito su una connessione sicura in HTTPS, è plausibile che ci siano più request di autenticazione e/o trasmissione in una singola operazione.

L’esempio della trasmissione dei dati della carta di credito su internet è tutt’altro che incidentale: HTTPS entra proprio in queste fasi, serve a garantire che la trasmissione avvenga soltanto per l’acquisto che ci siamo prefissi, e limita la possibilità  che i dati della carta vengono rilevati da intrusi esterni che potrebbero, ad esempio, clonarci la carta di credito. Stesso discorso vale quando facciamo login su Facebook, inserendo i dati della nostra carta di credito: la connessione deve essere mantenuta sicura perchè altrimenti potrebbero rubarci l’account, stessa cosa per il sito della nostra banca, per la nostra email, per Instagram e via dicendo.

Cosa cambia tra HTTP e HTTPS?

Dall’esterno, apparentemente non cambia nulla: tant’è che ci sono web server che funzionano egualmente con HTTP e con HTTPS (il che non è una scelta ottimale per vari motivi, che non approfondirò in questa sede). Il discorso è che username e password (nel caso di una request di login, diciamo) vengono trasmessi in chiaro su HTTP e in forma criptata (cioè non leggibile dall’esterno da un eventuale “spione” o sniffer) con HTTPS.

In altre parole cambia poco in termini di comunicazione, che sempre quella è  (il messaggio trasmesso è sempre lo stesso, solo che il primo è in chiaro ed il secondo è il suo equivalente criptato), unica differenza è che HTTPS rende più sicura la connessione e, naturalmente, obbliga il web server ad “attrezzarsi” per poter interpretare la request in modo tale che sia ad esso comprensibile.

In una comunicazione con HTTP, durante una sessione di login l’utente potrebbe ad esempio comunicare:

Username: pippo

Password: acelapimila79

più un set di ulteriori dati su browser, IP, ed altri dati utili nella comunicazione che cambiano a seconda delle implementazioni.

Nella stessa comunicazione via HTTPS, invece, trasmetteremo un blocco di dati criptato che potrebbe essere ad esempio:

0634EDDE0DE827BD447FBE496F3FC61E2B63BE1B

àˆ la stessa comunicazione di prima, ovviamente, solo che è crittografata e quindi leggibile solo dal destinatario legittimo, secondo le “regole” o le politiche interne stabilite dal protocollo HTTPS in questione.

Tipi di certificato SSL: wildcard

Ci sono vari dettagli da conoscere per implementare correttamente HTTPS nel proprio sito, e sono stati approfonditi a parte. Per quello che ci interessa, in particolare, i certificati di tipo wildcard permettono di essere attivati e di proteggere sia il dominio principale del sito che eventuali sottodomini dello stesso (sottodirectory di ognuno incluse). Per cui, se attivassi ad esempio un SSL wildcard sul dominio:

L'hosting italiano conveniente e funzionale è V-Hosting !

trovalost.it

la protezione ed il certificato saranno utilizzabili anche su:

blog.trovalost.it

www.trovalost.it

qualsiasinome.trovalost.it

Errori da non commettere quando si usa HTTPS

Google da tempo ha dato linee guida molto interessanti su HTTPS, e consiglia in particolare:

  • di evitare di far scadere i certificati, perchè altrimenti su molti browser può essere un problema aprire il sito; rinnovateli sempre per tempo
  • di assegnarli correttamente al nome di dominio del sito, possibilmente facendolo corrispondere con il suo canonical domain (per intenderci, www.nomesito.com oppure a seconda dei casi nomesito.com)
  • abilitare eventualmente il supporto SNI (indicazione name server)
  • non bloccare mai la scansione del sito sulle pagine in HTTPS con qualche direttiva robots.txt
  • evita di usare vecchie versioni di HTTPS perchè ormai obsolete e poco sicure
  • non mischiare mai contenuti HTTP con HTTPS (mixed content)
  • verifica anche, infine, i codici di stato del server (200, 404, a seconda dei casi)

Sono tutte indicazioni preziose sia dal punto di vista SEO tecnico, e valgono anche da un punto di vista della corretta configurazione del sito per garantire la massima compatibilità  con tutti i dispositivi e browser.



Questo blog pubblica contenuti ed offre servizi free da 11 anni. – Leggi un altro articolo a caso – Per informazioni contattaci
Non ha ancora votato nessuno.

Ti piace questo articolo? Vota e fammelo sapere.

Che cos’è HTTPS: come funziona e a cosa serve
L'hosting italiano conveniente e funzionale è V-Hosting !
connessione http vs https
Torna su