Requisiti
Questa guida usa Ubuntu 16.04 come sistema operativo su cui è in esecuzione il server web. Tuttavia, gli stessi passaggi possono essere utilizzati per qualsiasi altra versione di Ubuntu, purché non vi siano differenze nelle impostazioni. Questa guida presuppone che l'utente abbia già installato un server Web ed è Nginx. Come client SSH, viene utilizzato Putty e come editor di file è consigliato Nano.
Soluzione
- Il web-server creato sui Droplet è accessibile tramite protocollo SSH. Scarica e installa Putty dal suo sito ufficiale. L'applicazione è completamente gratuita.
- Dopo aver scaricato Putty, vai avanti e scarica il Nano. Lo scopo di Putty è accedere alla console Linux per digitare i comandi della shell, mentre Nano viene utilizzato per modificare file interni come il file predefinito Nginx.
- Avvia Putty e vai alla scheda Sessione.
- Nel campo Nome host, digita l'indirizzo IP del droplet di DigitalOcean in cui è installato il server web. L'indirizzo IP dei Droplet può essere trovato in https://cloud.oceano digitale.com/goccioline. Nel campo della porta, digita 22.
- Dopo aver inviato tutti i campi richiesti come visto sopra, premere OK per applicare le modifiche e accedere al Droplet. Quando si accede al sistema, chiederà il nome utente e la password del Droplet. Sia il nome utente che la password vengono inviati tramite e-mail all'e-mail registrata in DigitalOcean durante la creazione del Droplet.
- Questa guida utilizza Certbot, uno strumento di terze parti per automatizzare l'intero processo di recupero e rinnovo dei certificati digitali. Certbot ha un proprio sito Web da cui è possibile generare facilmente i comandi da utilizzare. Secondo Certbot, i comandi giusti per installare Certbot su Ubuntu sono questi. Prima aggiorna le informazioni del pacchetto nel repository locale, quindi installa il pacchetto comune delle proprietà del software che fornisce alcuni script utili nella gestione dei risultati dei pacchetti personali (PPA), quindi installa certbot, quindi aggiorna nuovamente il repository locale, quindi installa infine il python certbot pacchetto nginx. Assicurati che tutti questi pacchetti siano installati correttamente prima di andare al passaggio successivo.
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
- Vai al sito web da cui è stato acquistato il dominio. Questa guida utilizza Porkbun come registrar di domini, quindi aggiunge il record A al dominio. Il tipo è un record, l'host è vuoto se l'IP è associato al dominio radice, altrimenti usa il nome del sottodominio senza il dominio radice, ad esempio se è nucuta.com, usa semplicemente www. Come risposta digita l'indirizzo IP del Droplet.
- Allo stesso modo, reindirizza il traffico WWW al dominio principale come segue. Il tipo è "CNAME", l'host è "WWW", la risposta è "nucuta.com" o il tuo dominio. Questo passaggio è importante in quanto reindirizza tutto il traffico www al dominio principale.
- Usa il seguente comando su Putty per accedere al file predefinito di Nginx. Il file predefinito per impostazione predefinita utilizza un blocco Server in cui si trova il dominio primario. Nano Editor è altamente raccomandato in quanto è abbastanza comodo da usare rispetto ad altri.
- Nel file predefinito, vai al blocco server e reindirizza il traffico HTTP a HTTPs e nell'altro blocco server in cui viene gestito il traffico protetto, cambia nome_server in nome dominio, ad esempio
- Digita il seguente comando per riavviare il server web Nginx. Ogni volta che viene apportata una modifica al file predefinito, l'intero server Nginx deve essere riavviato affinché le nuove modifiche abbiano effetto.
- Per impostazione predefinita, il firewall blocca tutto il traffico tranne che verso la porta 80 e 22. L'HTTPS utilizza la porta 443; quindi deve essere aperto manualmente per accedere al server web dal lato client. L'apertura della porta dipende dal firewall.
In CSF (firewall server configurato)
- Apre il file di configurazione CSF digitando il seguente comando.
- Aggiungi le seguenti porte a TCP In e Out.
TCP_OUT = "20,21,22,25,53,80,443"- Riavvia il CSF digitando
csf -r
In USF (firewall semplice)
- Digita i seguenti due comandi per aggiungere HTTPS all'elenco delle eccezioni. Il pacchetto "Nginx Full" ha entrambe le porte HTTP e HTTPS; quindi l'aggiunta del pacchetto completo consente sia il traffico in entrata che in uscita.
sudo ufw delete allow 'Nginx HTTP'- Digita il seguente comando per vedere lo stato
stato ufw
- Controlla la porta 443 da un sito Web esterno per assicurarti che si apra di sicuro. Se la porta è aperta, dirà "443 port is open"
- Ora usa il Certbot per recuperare il certificato SSL nel dominio. Il parametro D è necessario per specificare il dominio. Crittografiamo rilascia un certificato sia per root che per il sottodominio www. Avere solo uno per entrambe le versioni genererà un avviso nel browser se un visitatore accede all'altra versione; quindi è importante ottenere il certificato per entrambe le versioni. sudo certbot --nginx -d nucuta.com -d www.nucuta.come
- Certbot chiederà di reindirizzare tutto il traffico HTTP a HTTPS, ma non è necessario poiché è già stato fatto in uno dei passaggi precedenti.
- Ora vai al sito Web di SSL Lab e controlla la qualità o altri problemi del certificato e della sua configurazione. https://www.ssllabs.com/ssltest/
- Se la configurazione corrente non è abbastanza sicura, vai al generatore di configurazione SSL di Mozilla e genera le impostazioni per il tuo server web. https://mozilla.github.io/server-side-tls/ssl-config-generator/. Dato che qui usa Nginx, assicurati di usare Nginx come server web. Offre tre opzioni, intermedio, vecchio e moderno. La vecchia opzione rende il sito Web compatibile praticamente con tutti i browser, inclusi i browser supervecchi come IE 6, mentre l'opzione intermedia lo rende ideale per gli utenti medi, l'opzione moderna genera la configurazione necessaria per la massima sicurezza, ma come compromesso il sito Web non funzionerà correttamente sui browser più vecchi. Quindi, è altamente raccomandato per i siti Web in cui la sicurezza è una delle principali preoccupazioni.
- Vai al tuo sito Web e fai clic con il pulsante destro del mouse sull'icona del lucchetto, quindi sull'opzione "Certificato" per vedere il certificato.
- Se mostra una data futura dopo l'opzione TO in valid from, il che significa che il processo di acquisizione del certificato è stato completato. Tuttavia, è importante reindirizzare il traffico alla versione pertinente del dominio, ad esempio il traffico HTTP e WWW può essere reindirizzato al dominio radice HTTPS come mostrato in questa guida. Il certificato verrà rinnovato automaticamente da certbot; quindi è sempre disponibile gratuitamente per il proprietario del sito web.