introduction
SSL (pour Secure Sockets Layer ) et son successeur, TLS (pour Transport Layer Security ) sont des protocoles cryptographiques pour sécuriser les communications sur Internet. Il peut être utilisé pour créer une connexion sécurisée à un site Web.
Intro
Assurez-vous que Nginx et OpenSSL sont installés sur votre serveur. Dans cet article, nous allons illustrer le processus en générant un certificat SSL auto-signé.
Étape 1: créer un répertoire pour le certificat et la clé privée
Nous allons créer un répertoire (et l'entrer) dans / etc / nginx (en supposant que ce répertoire est le répertoire de configuration de Nginx), en:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl # we'll perform our next few steps in this dir
Étape 2: créer une clé privée et une CSR
Commençons par créer la clé privée du site. Dans cet exemple, nous utiliserons la clé 4096 bits pour une sécurité renforcée. Notez que 2048 bits est également sécurisé, mais N'UTILISEZ PAS DE CLÉ PRIVÉE DE 1024 BITS!
sudo openssl genrsa -out example.com.key 4096
Maintenant, créez une demande de signature de certificat (CSR) pour signer le certificat. Nous utiliserons SHA-2 512 bits. Notez l' -sha512
option.
sudo openssl req -new -key example.com.key -out example.com.csr -sha512
Il vous demandera une liste de champs qui doivent être remplis. Assurez-vous que Common Name
votre nom de domaine est défini! Aussi, laissez A challenge password
et An optional company name
vide.
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 []:
Étape 3: signez votre certificat
Presque fini! Il ne nous reste plus qu'à le signer. N'oubliez pas de remplacer 365 (expiration après 365 jours) par le nombre de jours que vous préférez.
sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512
Maintenant, nous avons terminé de créer un certificat auto-signé.
Étape 4: configuration
Ouvrez l'exemple de fichier de configuration SSL de Nginx:
sudo nano /etc/nginx/conf.d/example_ssl.conf
Décommentez dans la section sous la ligne Serveur HTTPS . Faites correspondre votre configuration aux informations ci-dessous, en remplaçant example.com
la server_name
ligne par votre nom de domaine ou votre adresse IP. Définissez également votre répertoire racine.
# 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;
}
}
Redémarrez ensuite Nginx.
service nginx restart
Maintenant, visitez votre site Web avec une https
adresse ( https://your.address.tld
). Votre navigateur Web affichera une connexion sécurisée à l'aide de votre certificat auto-signé.