====== Serveur Web sécurisé ====== Installer un serveur web sécurisé via SSL. ===== Packages ===== sudo apt-get install -y nginx certbot python-certbot-nginx ===== Configuration nginx ===== Créons le site web //https://test.sleto.net avec support [[PHP 7.3]] via fpm // Ajouter le fichier __/etc/nginx/site-enabled/test_sleto_net__ server { listen 80; listen [::]:80; server_name test.sleto.net; charset utf-8; access_log /var/log/nginx/test.sleto.access.log; error_log /var/log/nginx/test.sleto.error.log; root /var/www/test.sleto/; client_max_body_size 100M; gzip on; gzip_vary on; gzip_min_length 1024; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml application/json application/pdf; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; location / { index index.php index.html; try_files $uri $uri/ @cms; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; } } } Vérification syntaxique des configuration sudo nginx -t ===== Configuration certbot ===== Pour créer la clef SSL Let's encrypt. sudo certbot --nginx -d test.sleto.net En fin de script, valider le fait d'installer la clef SSL pour votre sous-domaines. Le fichier __/etc/nginx/site-enabled/test_sleto_net__ sera alors corrigé en conséquence. ===== Fichier de configuration HTTPS/SSL ===== Afin d'être facilement réutilisable, il est également possible de se créer un fichier du genre ///opt/ssl/test.sleto.net.conf//: ssl_certificate /opt/ssl/test.sleto.net.crt; ssl_certificate_key /opt/ssl/test.sleto.net.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; keepalive_timeout 70; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; Il est alors simple de modifier sa configuration nginx précédente en: server { listen 80; listen [::]:80; server_name test.sleto.net; return 301 https://\$host\$request_uri; } server { listen 443 ssl; server_name test.sleto.net; include /opt/ssl/test.sleto.net.conf; ..... } ===== Rechargement ===== Recharger le serveur web sudo service nginx reload ou sudo service nginx restart