Nginx

Configuration SSL Nginx sous Linux

Configuration SSL Nginx sous Linux

SSL (pour Secure Socket Layer) est un protocole Web qui sécurise le trafic entre le serveur et le client en le cryptant. Le serveur et les clients transmettent le trafic en toute sécurité sans risque que la communication soit interprétée par des tiers. Il aide également le client à vérifier l'identité du site Web avec lequel il communique.

Dans cet article, nous décrirons comment configurer SSL pour Nginx. Nous allons démontrer la procédure en utilisant le certificat auto-signé. Un certificat auto-signé ne fait que crypter la connexion mais ne valide pas l'identité de votre serveur. Par conséquent, il doit être utilisé uniquement pour les environnements de test ou pour les services LAN internes. Pour l'environnement de production, il est préférable d'utiliser les certificats signés par CA (autorité de certification).

Conditions préalables

Pour ce poste, vous devez avoir les pré-requis suivants :

La procédure expliquée ici a été effectuée sur Debian 10 (Buster) machine.

Étape 1 : Génération d'un certificat auto-signé

Notre première étape sera de générer un certificat auto-signé. Exécutez la commande ci-dessous dans Terminal pour générer CSR (Certificate Signing Request) et une clé :

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned-nginx.key -out /etc/ssl/certs/selfsigned-nginx.crt

Vous serez invité à fournir des informations telles que le nom de votre pays, votre état, votre localité, votre nom commun (votre nom de domaine ou votre adresse IP) et votre adresse e-mail.

Dans la commande ci-dessus, OpenSSL créera les deux fichiers suivants :

Créez maintenant le dhparam.fichier pem en utilisant la commande ci-dessous :

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.2048

Étape 2 : Configuration de Nginx pour utiliser SSL

Dans l'étape précédente, nous avons créé le CSR et la clé. Maintenant, dans cette étape, nous allons configurer le Nginx pour utiliser SSL. Pour cela, nous allons créer un extrait de configuration et ajouter des informations sur nos fichiers de certificat SSL et les emplacements de clés.

Exécutez la commande ci-dessous dans Terminal pour créer un nouvel extrait de configuration auto-signé.fichier de configuration dans le /etc/nginx/snippets.

$ sudo nano /etc/nginx/snippets/auto-signé.conf

Dans le fichier, ajoutez les lignes suivantes :

certificat_ssl /etc/ssl/certs/selfsigned-nginx.crt;
ssl_certificate_key /etc/ssl/private/selfsigned-nginx.clé;

le certificat_ssl est réglé sur autosigné-nginx.crt (fichier d'attestation) tandis que le ssl_certificate_key est réglé sur autosigné-nginx.clé (fichier clé).

Enregistrez et fermez le auto-signé.conf déposer.

Maintenant, nous allons créer un autre fichier d'extrait ssl-params.conf et configurer certains paramètres SSL de base. Exécutez la commande ci-dessous dans Terminal pour modifier le ssl-params.conf déposer:

$ sudo nano /etc/nginx/snippets/ssl-params.conf

Ajoutez le contenu suivant au fichier :

ssl_protocoles TLSv1.2 ;
ssl_prefer_server_ciphers activé ;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1;
ssl_session_timeout  10 min ;
ssl_session_cache partagé:SSL:10m;
ssl_session_tickets désactivés ;
# ssl_stapling activé ;
# ssl_stapling_verify activé ;
résolveur 8.8.8.8 8.8.4.4 valides = 300 s ;
resolver_timeout 5s ;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff ;
add_header X-XSS-Protection "1; mode=block" ;

Comme nous n'utilisons pas de certificat signé CA, nous avons donc désactivé l'agrafage SSL. Si vous utilisez un certificat signé CA, décommentez le ssl_stapling entrée.

Étape 3 : Configuration de Nginx pour utiliser SSL

Nous allons maintenant ouvrir le fichier de configuration du bloc de serveur Nginx pour effectuer quelques configurations.  Dans cette étape, nous supposerons que vous avez déjà configuré le bloc serveur, qui sera similaire à celui-ci :

serveur
écouter 80 ;
écoutez [::]:80;
racine /var/www/test.org/html ;
index index.index html.index htm.nginx-debian.html;
test nom_serveur.www.org.test.org;
emplacement /
try_files $uri $uri/ =404;

Pour ouvrir le fichier de configuration du bloc de serveur Nginx, utilisez la commande ci-dessous :

$ sudo nano /etc/nginx/sites-available/test.organisation

Modifiez maintenant l'existant serveur bloc pour le faire ressembler à ceci:

serveur
écouter 443 ssl;
écouter [::]:443 ssl;
inclure des extraits/auto-signé.conf ;
inclure des extraits de code/ssl-params.conf ;
racine /var/www/test.org/html ;
index index.index html.index htm.nginx-debian.html;
test nom_serveur.www.org.test.org;

Dans les configurations ci-dessus, nous avons également ajouté les extraits SSL auto-signé.conf et ssl-params.conf que nous avons configuré précédemment.

Ensuite, ajoutez un deuxième serveur bloquer.

serveur
écouter 80 ;
écoutez [::]:80;
test nom_serveur.www.org.test.org;
renvoie 302 https://$server_name$request_uri;

Dans la configuration ci-dessus, retour 302 redirige le HTTP vers HTTPS.

Noter: Assurez-vous de remplacer le test.org avec votre propre nom de domaine. Maintenant, enregistrez et fermez le fichier.

Étape 4 : Autoriser le trafic SSL via le pare-feu

Si un pare-feu est activé sur votre système, vous devrez autoriser le trafic SSL à le traverser.  Nginx vous propose trois profils différents avec ufw. Vous pouvez les afficher en utilisant la commande ci-dessous dans Terminal :

$ sudo ufw liste des applications

Vous verrez la sortie suivante avec trois profils pour le trafic Nginx.

Vous devrez autoriser le profil « Nginx Full » dans le pare-feu. Pour ce faire, utilisez la commande ci-dessous :

$ sudo ufw autorise 'Nginx Full'

Pour vérifier si le profil a été autorisé dans le pare-feu, utilisez la commande ci-dessous :

$ sudo ufw status

Étape 5 : Testez le fichier de configuration NGINX

Testez maintenant le fichier de configuration Nginx à l'aide de la commande ci-dessous dans Terminal :

$ sudo nginx -t

Vous devriez voir la sortie ci-dessous.


Créez maintenant le lien symbolique entre les sites disponibles et les sites activés :

$ ln -s /etc/nginx/sites-available/test.fr /etc/nginx/sites-enabled/

Redémarrez ensuite le service Nginx pour appliquer les modifications de configuration. Utilisez la commande ci-dessous pour le faire :

$ sudo systemctl redémarrer nginx

Étape 6 : Testez SSL

Maintenant, pour tester le SSL, accédez à l'adresse suivante :

https://domaine-ou-adresse IP

Comme nous avons configuré le certificat auto-signé, nous verrons donc un avertissement indiquant que la connexion n'est pas sécurisée. La page suivante apparaît lors de l'utilisation du navigateur Mozilla Firefox.

Clique le Avancée bouton.

Cliquez sur Ajouter une exception.

Puis clique Confirmer l'exception de sécurité.

Vous verrez maintenant votre site HTTPS mais avec un panneau d'avertissement (cadenas avec un panneau d'avertissement jaune) concernant la sécurité de votre site Web.

Vérifiez également si la redirection fonctionne correctement en accédant à votre domaine ou à votre adresse IP via http.

http://domaine-ou-adresse IP

Maintenant, si votre site redirige automatiquement vers HTTPS, cela signifie que la redirection a fonctionné correctement. Pour configurer la redirection de manière permanente, modifiez le fichier de configuration du bloc serveur à l'aide de la commande ci-dessous dans Terminal :

$ sudo nano /etc/nginx/sites-available/test.organisation

Changez maintenant le retour 302 rendre 301 dans le fichier, puis enregistrez-le et fermez-le.

C'est ainsi que vous pouvez configurer SSL pour Nginx dans le système Debian 10. Nous avons mis en place le certificat auto-signé pour démonstration. Si vous êtes dans un environnement de production, optez toujours pour un certificat CA.

Remappez les boutons de votre souris différemment pour différents logiciels avec X-Mouse Button Control
Peut-être que vous avez besoin d'un outil qui pourrait faire changer le contrôle de votre souris avec chaque application que vous utilisez. Si tel est...
Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...
Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...