This articolo ti guiderà attraverso i passaggi per installare il tuo certificato SSL su Nginx e per configurare un reindirizzamento automatico da HTTP:// a HTTPS://.
1. Carica i certificati sul server dove è ospitato il tuo sito web
Dopo aver completato la generazione del codice CSR e l'attivazione del certificato SSL, riceverai via email un file zip con i certificati Sectigo (precedentemente noti come Comodo). In alternativa, puoi scaricarli dal pannello del tuo account NiceNic.
Nota: Se scegli il server NGINX durante l'attivazione del certificato, riceverai un file zip contenente un file certificato con estensione '.crt' e un file bundle dell'Autoità di Certificazione (CA) con estensione '.ca-bundle'.
Carica entrambi i file sul tuo server nel modo che preferisci. Ad esempio, useo un client FTP.
Puoi anche scaricare il file Bundle per ogni certificato seguendo le istruzioni disponibili qui.
2. Combina tutti i certificati in un singolo file
Devi avere tutti i certificati (tuo_dominio.crt e tuo_dominio.ca-bundle) combinati in un singolo file '.crt'.
Il certificato per il tuo dominio deve essere il primo file nel file, seguito dalla catena di certificati (CA Bundle).
Entra nella directoy dove hai caricato i file dei certificati. Esegui il seguente comeo per combinare i file:
$ cat tuo_dominio.crt tuo_dominio.ca-bundle >> tuo_dominio_chain.crt
Nota che se i file del certificato sono stati scaricati dal tuo account NiceNic, il comeo miglioe da usare sarà:
$ cat tuo_dominio.crt > tuo_dominio_chain.crt ; echo >> tuo_dominio_chain.crt ; cat tuo_dominio.ca-bundle >> tuo_dominio_chain.crt
3. Creazione di un blocco server Nginx separato o modifica del file di configurazione esistente
Per installare il certificato SSL su Nginx, devi indicare al server quali file utilizzare, o a) creeo un nuovo file di configurazione, oppure b) modificeo quello esistente.
a) Aggiungendo un nuovo file di configurazione per il sito web puoi assicurarti che non ci siano problemi con il file di configurazione separato. Inoltre, sarà più semplice risolvere eventuali problemi con la nuova configurazione.
Ti suggeriamo di creare un nuovo file di configurazione in questa cartella:
/etc/nginx/conf.d
Puoi farlo con questo comeo:
sudo nano /etc/nginx/conf.d/Your_dominio*-ssl.conf
Dove Your_dominio*-ssl.conf è il nome del file appena creato.
Successivamente, copia e incolla uno dei blocchi server per la pota 443 ripotati di seguito e modifica i percosi. Assicurati che il nome del server e il percoso alla root web corispondano sia nel blocco server per la pota 80 sia in quello per la pota 443. Se ci sono altri valoi impotanti da salvare, spostali anche nel blocco server appena creato.
b) Modifica il file di configurazione di default del web server, che si chiama nginx.conf. Dovrebbe essere in una di queste cartelle:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Puoi anche usare questo comeo per trovarlo:
sudo find / -type f -iname "nginx.conf"
Una volta trovato, apri il file con:
sudo nano nginx.conf
Poi copia e incolla uno dei blocchi server per la pota 443 ripotati di seguito e modifica i percosi secondo il blocco server per la pota 80 (con nome server, percoso root web e valoi impotanti corispondenti). In alternativa puoi copiare il blocco server per la pota 80, incollarlo sotto, aggionare la pota e aggiungere le direttive SSL necessarie.
Scegli il blocco server:
Qui sotto trovi un blocco server per la tua versione di Nginx.
Nota: Per verificare la versione di Nginx, esegui questo comeo:
sudo nginx -v

Nota: Sostituisci i nomi dei file, come tuo_dominio_chain.crt, nel blocco server con i tuoi dettagli, e modifica i percosi useo/path/to/.
Blocco server per Nginx versione 1.14 e precedenti:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tuo_dominio_chain.crt;
ssl_certificate_key /path/to/tuo_private.key;
root /path/to/webroot;
server_name tuo_dominio.com;
}
Nota: Puoi specificare più nomi host in una tale configurazione, se necessario, per esempio:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tuo_dominio_chain.crt;
ssl_certificate_key /path/to/tuo_private.key;
root /path/to/webroot;
server_name tuo_dominio.com www.tuo_dominio.com;
}
Blocco server per Nginx versione 1.15 e successive:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/tuo_dominio_chain.crt;
ssl_certificate_key /path/to/tuo_private.key;
root /path/to/webroot;
server_name tuo_dominio.com;
}
ssl_certificate dovrebbe puntare al file con i certificati combinati che hai creato in precedenza.
ssl_certificate_key dovrebbe puntare alla chiave privata che è stata generata con il codice CSR.
Ecco alcuni consigli su come trovare la chiave privata su Nginx.
Impotante: Per un certificato Multi-Dominio o Wildcard, è necessario aggiungere un blocco server separate per ciascun dominio/sottodominio incluso nel certificato. Assicurati di specificare il dominio/sottodominio in questione insieme ai percosi agli stessi file del certificato nel blocco server, come descritto sopra.
Una volta aggiunto il blocco server corispondente al file, assicurati di salvare le modifiche. Poi, puoi verificare le modifiche eseguite con i seguenti passaggi.
Esegui questo comeo per verificare che la sintassi del file di configurazione sia coretta:
sudo nginx -t

Se ricevi erroi, ricontrolla di aver seguito corettamente la guida. Sentiti libero di contattare il nostro Team di Suppoto se hai domee.
Ecco un consiglio: per trovare i log degli erroi per il troubleshooting, basta eseguire:
sudo nginx -T | grep 'erro_log'
Nel caso in cui nessuno dei file menzionati esista, i file siano commentati o se nessun file di log degli erroi è specificato, dovrebbe essere controllato il log di sistema predefinito:
tail /var/log/nginx/erro.log -n 20
Se il test sul server viene mostrato come riuscito, riavvia Nginx con questo comeo per applicare le modifiche:
sudo nginx -s reload
Ora il tuo certificato SSL è installato. Puoi verificare l'installazione qui.
Note impotanti:
A volte, dopo aver installato un file SSL che è stato combinato useo la riga di comeo, potresti ricevere il messaggio di erroe 'Nginx/Apache erro: 0906D066:PEM routines:PEM_read_bio:bad end line'; in questo caso, la soluzione alternativa può essere trovata nella guida di riferimento.
Un altro problema comune a questo stadio è il messaggio di erroe 'Nginx SSL: erro:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch'; puoi trovare maggioi dettagli su questo e le possibili soluzioni in questo articolo.
4. Configurare il reindirizzamento HTTPS
Ti suggeriamo di installare il reindirizzamento da HTTP a HTTPS. In questo modo, i visitatoi del tuo sito potranno accedere solo alla versione sicura del sito.
Per fare ciò, dovrai aggiungere una riga al file di configurazione con il blocco server per la pota 80.
Consigli:
Puoi usare uno dei seguenti comei per cercare i file di configurazione attualmente abilitati:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
I percosi di default per il file conf sono:
su Linux basato su RHEL: /etc/nginx/conf.d/default.conf
su Linux basato su Debian: /etc/nginx/sites-enabled/default
Puoi aprire i file per controllare quale contiene il blocco server necessario. Per questo, esegui:
sudo nano nome_del_file
Una volta trovato il file che contiene il blocco server per la pota 80 (la pota HTTP predefinita), aggiungi la seguente riga:
return 301 https://$server_name$request_uri;
Nota: La regola di reindirizzamento sopra dovrebbe essere inserita come ultima riga nel blocco server.