Creare un certificato SSL per Nginx in Ubuntu Server 16.04

by | Lug 7, 2017

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.

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Infrastrutture IT
  • ACT For Cange  Mental Coach
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore Collaboratore

Related Post

1 Comment

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

Submit a Comment

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

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione