Che cosa è un certificato SSL
SSL è sinonimo di una tecnologia di sicurezza standard globale che consente la comunicazione crittografata tra un browser (Chrome, Edge, Safari) e un server web; letteralmente sta a significare Secure Sockets Layer.
Il certificato SSL è una sorta di garanzia che viene rilasciata da un ente definito Certification Authority. In pratica l’autorità che emette il certificato garantisce che l’organizzazione con cui stai “parlando” attraverso il browser è realmente chi dichiara di essere.
Per creare questa connessione sicura, un certificato SSL (noto anche come “certificato digitale”) è installato su un server web e ha principalmente due funzioni:
- autentica l’identità del sito web (questo garantisce ai visitatori che non si tratta di un sito fasullo);
- cripta i dati che vengono trasmessi.
Quale certificato SSL scegliere
Tutti i certificati SSL sono uguali? No, ci sono diversi tipi di certificati SSL in base al numero dei nomi di dominio o dei nomi di sottodominio di proprietà. Sostanzialmente possono essere di tre tipi Single, Wildcard e Multi-Domain vediamoli insieme:
- Single – copre un solo nome di dominio completo o il nome di sottodominio;
- Wildcard – copre un nome di dominio e un numero illimitato di suoi sottodomini;
- Multi-Domain – protegge più nomi di dominio.
Esistono inoltre vari livelli di convalida necessari reltivi ai certificati SSL come ad esempio:
- Domain Validation – questo livello è il meno costoso, copre la crittografia di base e la verifica della titolarità della registrazione del nome del dominio. Questo tipo di certificazione richiede solitamente da paio di minuti a diverse ore per ottenerlo;
- Organization Validation – con questo tipo di convalida in aggiunta alla crittografia di base e la verifica della titolarità della registrazione del nome di dominio, alcuni dettagli del proprietario (ad esempio nome e indirizzo) sono autenticati. Questo tipo di certificato di solito richiede da alcune ore a diversi giorni per ottenerlo;
- Extended Validation (EV) – questo fornisce il più alto grado di sicurezza a causa dell’esame approfondito che viene effettuato prima che sia emesso il certificato (come strettamente specificato nelle linee guida stabilite dal consorzio di governo del settore certificazione SSL). Oltre alla proprietà della registrazione del nome di dominio e l’autenticazione entità, è verificata l’esistenza legale, materiale e funzionale del soggetto. Questo tipo di certificazione richiede solitamente da un paio di giorni a diverse settimane per ottenerlo.
Chi ha bisogno di un certificato SSL
Ha sicuramente bisogno di un certificato SSL ogni individuo, organizzazione o azienda che utilizza il proprio sito web per richiedere, ricevere, elaborare, raccogliere, immagazzinare o visualizzare informazioni riservate o sensibili. Alcuni esempi di queste informazioni sono:
- login e password;
- informazioni finanziarie (ad esempio, numeri di carte di credito, conti bancari);
- dati personali (ad esempio, i nomi, gli indirizzi, i numeri di previdenza sociale, date di nascita);
- informazioni proprietarie;
- documenti legali e contratti;
- liste di clienti;
- cartelle cliniche.
Man mano sta diventando indispensabile soprattutto per quei siti web che hanno nelle proprie pagine web una form dati che richiede username e password (ad esempio per l’accesso ad un’area riservata). Infatti, il browser di Google, a partire dalla versione Chrome 56, visualizza un messaggio di avviso per l’utente di accesso non sicuro nel caso in cui il sito non sia protetto da un certificato SSL e quindi non sia raggiungibile mediante protocollo https.

Come creare un certificato SSL
Probabilmente la parte più importante di un certificato SSL è da dove proviene. I certificati SSL sono emessi da autorità di certificazione (CA o Certification Autohrity), ovvero organizzazioni che si assicurano di verificare l’identità e la legittimità di qualsiasi soggetto che richiede un certificato.
Il ruolo della CA è quella di accettare le domande di certificato, autenticare le applicazioni, i certificati di emissione e mantenere le informazioni di stato aggiornate sui certificati rilasciati.
Come posso capire se un sito ha un certificato SSL
Sostanzialmente ci sono quattro indizi visivi:
- un lucchetto a fianco dell’ URL;
- il prefisso URL https invece di http;
- un sigillo di fiducia;
- una barra degli indirizzi verde (quando un certificato EV SSL è emesso).
Ecco un esempio dal sito di Google:

Come installare un certificato SSL
Lo scopo di questo paragrafo non è quello di indicare esattamente come installare un certificato SSL nel tuo server ma di fornire a grandi linee una procedura su un server Linux con Apache.
Se dovessi avere qualche dubbio o soprattutto difficoltà a installare il certificato sul server, ti consigliamo di chiedere assistenza tecnica ad un sistemista oppure di contattare direttamente HostingVirtuale per richiedere una consulenza di questo tipo.
Fase 1: Ottenere e installare il certificato SSL
Dopo aver ottenuto il certificato dal tuo fornitore, scarica e copia i due certificati (server e intermediate) direttamente sul server, ad esempio in una directory come /usr/local/ssl/crt/;
Fase 2: Configurare Apache
Alcune configurazioni di Apache contengono sia il file httpd.conf e sia il file ssl.conf. Attenzione ad aggiornare con le direttive indicate di seguito, uno solo di questi file per evitare che ci sia un conflitto e Apache non si avvii.
Apri il file di configurazione in un editor di testo come Vim o Blocco note e nella sezione Virtual Host del file httpd.conf o ssl.conf, aggiungi le seguenti direttive:

Mentre il VirtualHost dovrebbe essere come segue
<VirtualHost IP_SERVER:443>
ServerAdmin email-amministratore
DocumentRoot /percorso/document-root
ServerName nome-sito
ErrorLog /percorso/error-log
SSLEngine on <br>SSLProtocol all
SSLCertificateFile /percorso/server-certificate SSLCertificateKeyFile /percorso/private-key SSLCertificateChainFile /percorso/intermediate-certificate ServerPath /percorso
<Directory "/percorso"></Directory>
</VirtualHost>
Fase 3: test e verifiche
Ovviamente si può provare subito a visualizzare il sito web digitando prima il protocollo HTTPS e verificare che sia visibile. Se invece vuoi utilizzare un sistema di terze parti per verificare che il certificato sia installato correttamente, puoi utilizzare il tool di GeoTrust.
Ringrazio Hosting Virtuale, a cui vi rimando per ulteriori approfondimenti, per la parte teorica che mi ha permesso di inquadrare tutto il tema che ad un tratto mi sembrava così nebuloso da essere in una città Cyberpunk come l’immagine di Copertina presa da Deviantart.

Purtroppo come i miei colleghi sanno bene se la teoria corrispondesse alla pratica probabilmente otterrei il certificato della foto Photo by Robert Anasch on Unsplash. Visto che mi trovavo su un server governato da DirectAdmin è meglio che vi dico i passi che ho fatto per rendere reale quanto descritto. A proposito per ragioni di costo volevamo installare dei certificati ssl free di Let’s Encrypt.
Come primo passaggio DirectAdmin deve avere abilitato la creazione dei certificati Let’s Encrypt il che vuol dire che il suo file di configurazione directadmin.conf, qui trovate come aggiornarlo, deve contenere la direttiva letsencrypt=1.
Prima di partire andate nella videata della gestione SSL del sito che dovrà andare in https, abilitate l’SSL e seguite le istruzioni per connettere tramite un link simbolico le cartelle generate per il sito https con quelle del sito http evitando così che quando si usa l’https venga usato un sito vuoto visto che i dati sono in quello http.

Le istruzioni corrette per fare creare un certificato Let’s Encrypt a DirectAdmin sono quelle specificate per la creazione di un certificato mono dominio del 6/7/2020 Installing an SSL certificate for your hostname using LetsEncrypt . I comandi sono tre. I primi due potete farli in sequenza mentre il terzo, il restart del servizio di DirectAdmin, va fatto dopo avere connesso il certificato al sito vero e proprio, passaggio documentato in un’immagine successiva.

Mentre non abbiamo capito molto per il Wildcard domain abbiamo verificato che i certificati per il nostro WordPress Multisite possono essere assimilati a dei certificati Multi Domain e quindi devono essere generati con la sequenza del certificato singolo, che abbiamo appena descritto, sostituendo il primo comando con quello utilizzato nelle istruzioni, ormai obsolete, fornite per ottenere un certificato MultiDomain .

In accordo con quanto detto per ottenere il primo certificato abbiamo seguito le istruzioni per la request_single sostituendo il primo comando con questo.
./letsencrypt.sh request perlaterra.net,iafue.perlaterra.net.sovranitalimentare.it,voci.perlaterra.net 4096
Credendo che dovesse essere necessario avere un certificato di tipo Wildcard Domain per avere l’SSL su WordPress Multisite abbiamo iniziato a seguire le istruzioni per un Wildcard domain mettendo dentro directadmin.conf il parametro dns_ttl=1. L’abbiamo lasciato ma non sappiamo se per quanto abbiamo appena detto e fatto sia utile o meno.
Per connettere il certificato appena creato con il WordPress Multisite bisogna andare sul pannello DirectAdmin del sito alla voce configurazione SSL e mettetevi nella condizione analoga a quanto illustrato dalla figura seguente per scegliere di utilizzare il certificato presente sul server creato dalla fase precedente. Dovete chiaramente includere tutti i siti che avete incluso nel certificato.

Importante è salvare quanto fatto e fare poi il restart del server DirectAdmin come specificato nella fase di creazione del certificato. Se per qualche evenienza volete guardare dietro le quinte qui trovate dove fisicamente sono presenti sul server i certificati.


Mail per Multisite con DirectAdmin
Per avere le mail per ogni dominio facendo gestire a DirectAdmin un multisito è un bel casino visto che lui gestisce le mail sotto un nome di dominio fisico. Dunque non è possibile da amministrazione DirectAdmin assegnare mail ai Domain Pointer ospitati da un multisito. Per ovviare a questo esiste questo batch che genera mail per qualsiasi sito interagendo direttamente con dovecot il server che gestisce IMAP, SMTP e POP3.

La soluzione finale per avere un Multisito con SSL e mail
Le mail hanno posto il problema di avere i vantaggi di un multisito ma che sia gestibile con l’interfaccia di DirectAdmin che è orientata impilare le funzioni di gestione sotto il singolo dominio. Per chi ha poca dimestichezza con DirectAdmin ricordo che fino a qua abbiamo installato un WordPress multisito sotto un dominio DirectAdmin e utilizzando la sua interfaccia abbiamo connesso tutti i siti che lo compongono al sito di base tramite il Puntamento a Dominio. E’ per questo che abbiamo utilizzato la procedura per creare un certificato SSL che certificasse tutti i domini che stanno fisicamente in un sito in una volta sola e che abbiamo tirato fuori la creazione multipla delle mail staccata dal nome del dominio.
Spesso volentieri la soluzione sta nel cambiare paradigma abbandonando i i Puntatori a Dominio e utilizzando i link simbolici tra siti fisici. Seguendo la natura di DirectAdmin si creano tanti domini quanti sono i siti di cui si ha bisogno in uno si installa wordpress multisito, tutti gli altri si lasciano senza applicazioni specifiche (siti statici) e si oscurano le cartelle che dovrebbero contenere ogni singolo sito connettendole tramite link simbolico alle cartelle del multisito. Così facendo la parte web che viene eseguita quando viene richiesto quel sito viene delegata al multisito. Le mail e la gestione del certificato ssl rimangono invece a carico del singolo singolo sito i puro stile DirectAdmin.
Quindi una volta creato il singolo sito con la procedura 3b si creano i link simbolici come indicato da questo post.

Per creare l’ssl del singolo sito fare riferimento come documentato in precedenza alla procedura di creazione del singolo certificato, almeno sui siti singoli non fare assolutamente la procedura di assegnazione della cartella di https a http tramite link simbolico (scegliere o lasciare none nella figura sottostante dove si consigliava l’inverso con i pointer).

Rispondi