Les protocoles Web TLS (et son prédécesseur SSL) englobent le trafic dans un contenant protégé et chiffré pour :
Nous allons configurer un certificat SSL auto-signé pour un serveur Web Nginx sur un Raspberry Pi.
Un certificat auto-signé ne valide pas l'identité du votre serveur pour les utilisateurs car il n'est pas signé par une autorité de certification de confiance de leur navigateur Web.
Il permet cependant de crypter les communications avec vos clients Web.
Au lieu d'un certificat auto-signé, vous pouvez utiliser Let's Encrypt, une autorité de certification qui émet des certificats SSL/TLS gratuits approuvés par la plupart des navigateurs Web.
Consultez le tutoriel SSL pour Nginx : mettre en place un certificat SSL Let's Encrypt avec Certbot
Créez le répertoire /etc/nginx/ssl pour les certificats SSL et allez-y :
pi@framboise:~ $ sudo mkdir -p /etc/nginx/ssl pi@framboise:~ $ cd /etc/nginx/ssl pi@framboise:/etc/nginx/ssl $
Créez en une seule commande la clé SSL /etc/nginx/ssl/monsite.fr.key et le fichier de certificat /etc/nginx/ssl/monsite.fr.crt :
pi@framboise:/etc/nginx/ssl $ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout monsite.fr.key -out monsite.fr.crt Generating a RSA private key <...> writing new private key to 'monsite.fr.key' <...> ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []:. Organization Name (eg, company) [Internet Widgits Pty Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (e.g. server FQDN or YOUR name) []:monsite.fr Email Address []:. pi@framboise:/etc/nginx/ssl $ ll <...> -rw------- 1 root root 1,7K juil. 8 20:29 monsite.fr.key -rw-r--r-- 1 root root 1,5K juil. 8 20:32 monsite.fr.crt
Réponses à fournir :
Explication de la commande :
Il nous suffit maintenant de modifier les blocs server des fichiers de configuration de Nginx.
Nginx peut activer SSL dans le même bloc server que le trafic HTTP normal. Cela simplifie la configuration du site.
Pour que SSL fonctionne sur un bloc serveur, tout en autorisant les connexions HTTP régulières, éditez avec les droits d'administration le fichier /etc/nginx/sites-available/monsite.fr et ajoutez les lignes suivante au bloc servers (lignes 4,11 et 12 sur l'exemple) :
server { listen 80 defaultserver; root /var/www/html/monsite; server_name monsite.fr; location / { } }
Redémarrez Nginx :
pi@framboise:~ $ sudo nginx -s reload
Votre site répond désormais aux demandes HTTP et HTTPS (SSL).