====== 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