Installer un serveur web sécurisé via SSL.
sudo apt-get install -y nginx certbot python-certbot-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
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.
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; ..... }
Recharger le serveur web
sudo service nginx reload
ou
sudo service nginx restart