introduzione
SSL (sta per Secure Sockets Layer ) e il suo successore, TLS (sta per Transport Layer Security ) sono protocolli crittografici per proteggere le comunicazioni su Internet. Può essere utilizzato per creare una connessione sicura a un sito Web.
Intro
Assicurati che Nginx e OpenSSL siano installati sul tuo server. In questo articolo, dimostreremo il processo generando un certificato SSL autofirmato.
Passaggio 1: creare una directory per il certificato e la chiave privata
Creeremo una directory (e la inseriremo) all'interno di / etc / nginx (supponendo che la directory sia la directory di configurazione di Nginx), tramite:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl # we'll perform our next few steps in this dir
Passaggio 2: creare la chiave privata e CSR
Iniziamo creando la chiave privata del sito. In questo esempio, useremo la chiave a 4096 bit per una maggiore sicurezza. Si noti che anche 2048 bit è sicuro, ma NON UTILIZZARE UN TASTO PRIVATO A 1024 BIT!
sudo openssl genrsa -out example.com.key 4096
Ora, crea una richiesta di firma del certificato (CSR) per firmare il certificato. Useremo SHA-2 a 512 bit. Nota l' -sha512
opzione.
sudo openssl req -new -key example.com.key -out example.com.csr -sha512
Richiederà un elenco di campi che devono essere compilati. Assicurati che Common Name
sia impostato sul tuo nome di dominio! Inoltre, lasciare A challenge password
e An optional company name
vuoto.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:CA
Locality Name (eg, city) []:LosAngeles
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Security
Common Name (e.g. server FQDN or YOUR name) []:*.example.com
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Passaggio 3: firma il certificato
Quasi fatto! Ora non ci resta che firmarlo. Non dimenticare di sostituire 365 (scadenza dopo 365 giorni) al numero di giorni che preferisci.
sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512
Ora abbiamo finito di fare un certificato autofirmato.
Passaggio 4: impostare
Apri il file di configurazione SSL di esempio di Nginx:
sudo nano /etc/nginx/conf.d/example_ssl.conf
Uncomment all'interno della sezione sotto la linea Server HTTPS . Abbina la tua configurazione alle informazioni seguenti, sostituendo example.com
la server_name
riga con il tuo nome di dominio o indirizzo IP. Imposta anche la tua directory principale.
# HTTPS server
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4; # no RC4 and known insecure cipher
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Quindi riavviare Nginx.
service nginx restart
Ora, visita il tuo sito Web con un https
indirizzo ( https://your.address.tld
). Il tuo browser mostrerà una connessione sicura usando il tuo certificato autofirmato.