320.06.70.037 [email protected]
Seleziona una pagina

Creare un certificato SSL per Nginx in Ubuntu Server 16.04

da | Lug 7, 2017 | Ubuntu | 1 commento

PRE-REQUISITI

Prima di iniziare, è necessario disporre di un utentza root sul sistem Ubuntu Server.
Inoltre, sarà necessario installare il server web Nginx.

CREAZIONE DEL CERTIFICATO SSL

TLS / SSL funziona utilizzando una combinazione di un certificato pubblico e di una chiave privata. Il codice SSL viene mantenuto segreto sul server. Viene utilizzato per crittografare i contenuti inviati ai client. Il certificato SSL è pubblicamente condiviso con chiunque richiede il contenuto. Può essere utilizzato per decrittografare il contenuto firmato dal relativo codice SSL.

Possiamo creare chiave pubblica e priovata con OpenSSL lanciando il comando:

Vi verranno poste una serie di domande.

Di segutio la spiegazione di tutti i parametri utilizzati nel comando:

Openssl: Questo è lo strumento di riga di comando di base per la creazione e la gestione di certificati OpenSSL, chiavi e altri file.
Req: Questo sottocomando specifica che vogliamo utilizzare la gestione delle richieste di firma di certificato X.509 (CSR). Il “X.509” è uno standard di infrastruttura chiave pubblica che SSL e TLS aderiscono per la gestione delle chiavi e dei certificati. Vogliamo creare un nuovo certificato X.509, quindi stiamo usando questo sottocomando.
-x509: questo modifica ulteriormente il subcomando precedente indicando l’utilità che vogliamo creare un certificato auto-firmato anziché generare una richiesta di firma del certificato, come accade normalmente.
-nodes: questo dice a OpenSSL di saltare l’opzione per proteggere il nostro certificato con una passphrase. Abbiamo bisogno di Nginx per poter leggere il file, senza intervento dell’utente, quando il server si avvia. Una passphrase impedirebbe che questo accada perché dovremmo entrare dopo ogni riavvio.
-days 3650: Questa opzione imposta la durata del tempo che il certificato sarà considerato valido. nel mio caso ho impostato la valisità per 10 anni
-newkey rsa: 2048: specifica che vogliamo generare un nuovo certificato e una nuova chiave contemporaneamente. Non abbiamo creato la chiave necessaria per firmare il certificato in un passaggio precedente, quindi abbiamo bisogno di crearlo insieme al certificato. La parte di rsa: 2048 lo dice per fare un tasto RSA che è 2048 bit lungo.
-keyout: questa riga dice a OpenSSL dove posizionare il file di chiave privata generato che stiamo creando.
-out: Questo indica a OpenSSL dove inserire il certificato che stiamo creando.
Di seguito vi riporto le domande a cui rispondere:

Entrambi i file creati verranno collocati nelle sottodirectory appropriate della directory /etc/ssl.

Mentre utilizziamo OpenSSL, dobbiamo anche creare il gruppo Diffie-Hellman, utilizzato per negoziare Perfect Forward Secrecy con i clienti.

Creiamo il gruppo con questo comando:


Questa operazione può richiedere diversi minuti ed al termine avremo un gruppo DH in /etc/ssl/certs/dhparam.pem che possiamo usare nella nostra configurazione.

CONFIGURARE NGINX PER L’UTILIZZO DEL CERTIFICATO SSL

Abbiamo creato i nostri file chiavi e certificati sotto la directory /etc/ssl.

Ora abbiamo solo bisogno di modificare la nostra configurazione Nginx per utilizzare l’SSL

Innanzitutto, creiamo un nuovo snippet di configurazione Nginx nella directory  /etc/nginx/snippets.

Per distinguere correttamente lo scopo di questo file, lo chiamiamo self-signed.conf:


All’interno del file creato inseriamo le seguenti righe quindi salviamo e usciamo


Successivamente creeremo un altro snippet che definirà alcune impostazioni SSL. Questo proteggerà Nginx con una forte suite di codici SSL e abiliterà alcune funzionalità avanzate che contribuiranno a mantenere sicuro il nostro server.

I parametri che verranno impostati possono essere riutilizzati nelle future configurazioni di Nginx, quindi daremo al file un nome generico:


Per impostare in sicurezza la Nginx SSL, utilizzeremo le raccomandazioni di Remy van Elst sul sito Cipherli.st.

Inseriamo quindi nel file creato le seguenti righe di codice:


Salviamo il file ed usciamo dall’editor.

A questo punto è possibile customizzare la configurazione del nostro Nginx per l’utilizzo del certificato SSL creato.

Raffaele Chiatto

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360°…
Mi sono avvicinato al mondo dell’informatica nel lontano 1996 con Windows 95 e da allora non ho più smesso di dedicarmi allo studio ed approfondimento di questo settore.
Laureato in Ingegneria Informatica nel 2009, lavoro nel campo dell’IT dal lontano 2001.

Link – Friends

Infrastrutture IT

English School

Act for Change

Graphic and Web solution

1 commento

  1. Avatar

    Grande! Tra mille che hanno provato tu ci sei riuscito! GRANDE!!!

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Translate »