Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Bonjour à tous, Aujourd’hui, on va voir comment monter un serveur web de A à Z avec Debian 9 sans passer par un panel d’administration type ISPConfig ou Cpanel. Les technologies utilisées seront les suivantes : NGINX, MariaDB, PHP 7, UFW, Let’s Encrypt, FreshRSS, WordPress et Ghost Vous devrez évidemment remplacer mes noms de domaines par les vôtres 🙂 Installation de Debian 9 : Pas mal d’hébergeurs ne proposent pas encore des installations de Debian 9 en natif. Il va donc falloir mettre à jour de Debian 8 vers Debian 9 : rm /etc/apt/sources.list nano /etc/apt/sources.list Remplissez le fichier avec ceci : #Debian Mirrors deb http://httpredir.debian.org/debian stretch main contrib non-free deb-src http://httpredir.debian.org/debian stretch main contrib non-free deb http://httpredir.debian.org/debian stretch-updates main contrib non-free deb-src http://httpredir.debian.org/debian stretch-updates main contrib non-free Lancez la mise à jour avec ceci : apt-get update && apt-get dist-upgrade -y Nettoyage et mise à jour du système : Lancez les commandes suivantes pour partir sur un système propre : apt-get update && apt-get upgrade -y && apt-get autoremove -y && apt-get clean Configuration de l’authentification par clé ED25519 : Lancez la commande suivante si vous êtes sur un Linux pour générer une clé ED25519 : ssh-keygen -t ed25519 Sinon utilisez PuttyGen sur Windows : Copiez ensuite la clé publique sur le serveur avec la commande suivante : ssh-copy-id -i ~/.ssh/id_ed25519.pub root@machine Configuration de SSH : Une fois que votre Debian 9 est prêt, ouvrez le fichier de configuration du serveur SSH : echo "" > /etc/ssh/sshd_config nano /etc/ssh/sshd_config Et copiez-y ceci : #Port 22 HostKey /etc/ssh/ssh_host_ed25519_key PermitRootLogin without-password AllowUsers root PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes PrintMotd no # Allow client to pass locale environment variables AcceptEnv LANG LC_* # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server KexAlgorithms curve25519-sha256@libssh.org Ciphers chacha20-poly1305@openssh.com MACs umac-128-etm@openssh.com,umac-128@openssh.com Comment ça le seul moyen d’accès à votre serveur sera par authentification par clé ED25519. Redémarrez SSHD pour appliquer les paramètres : systemctl restart sshd Installation des mises à jour : Installez Unattended-upgrades pour que les mises à jour s’installe automatiquement et needrestart pour redémarrer les services utilisant des bibliothèques dépassées : apt-get install unattended-upgrades needrestart -y Configurez les mises à jour automatiques avec la commande suivante : dpkg-reconfigure unattended-upgrades Installation de UFW : Maintenant on va installer UFW pour filtre les accès entrants sur le serveur. Installez le pare-feu UFW avec la commande suivante : apt-get install ufw -y Si vous utilisez IPV6 sur votre serveur, éditez le fichier suivant : nano /etc/default/ufw Et vérifiez que la ligne IPV6 est bien sur Yes : IPV6=yes Ensuite, désactivez le pare-feu : ufw disable Autorisez toutes les connexions sortantes et refusez toutes les connexions entrantes : ufw default deny incoming ufw default allow outgoing Maintenant, créez les règles pour autoriser les ports HTTP et HTTPS au web entier : ufw allow 80 ufw allow 443 Autorisez l’accès SSH uniquement depuis votre adresse IPV4 fixe : ufw allow from IPV4 to any port 22 ufw allow from IPV6 to any port 22 Et activez le pare-feu : ufw enable Installation des composants supplémentaires : On installe maintenant Haveged pour la génération d’entropie et tout ce qui pourrait être utilisé pour la suite : apt-get install -y haveged curl git unzip zip Configuration du kernel : Ouvrez votre fichier de configuration du kernel : nano /etc/sysctl.conf Et ajoutez les lignes suivantes : #PERSO # Recycle Zombie connections net.inet.tcp.fast_finwait2_recycle=1 net.inet.tcp.maxtcptw=200000 # Increase number of files kern.maxfiles=65535 kern.maxfilesperproc=16384 # Increase page share factor per process vm.pmap.pv_entry_max=54272521 vm.pmap.shpgperproc=20000 # Increase number of connections vfs.vmiodirenable=1 kern.ipc.somaxconn=3240000 net.inet.tcp.rfc1323=1 net.inet.tcp.delayed_ack=0 net.inet.tcp.restrict_rst=1 kern.ipc.maxsockbuf=2097152 kern.ipc.shmmax=268435456 # Host cache net.inet.tcp.hostcache.hashsize=4096 net.inet.tcp.hostcache.cachelimit=131072 net.inet.tcp.hostcache.bucketlimit=120 # Increase number of ports net.inet.ip.portrange.first=2000 net.inet.ip.portrange.last=100000 net.inet.ip.portrange.hifirst=2000 net.inet.ip.portrange.hilast=100000 kern.ipc.semvmx=131068 # Disable Ping-flood attacks net.inet.tcp.msl=2000 net.inet.icmp.bmcastecho=1 net.inet.icmp.icmplim=1 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_tw_recycle = 1 # Increase maximum amount of memory allocated to shm kernel.shmmax = 1073741824 # This will increase the amount of memory available for socket input/output queues net.ipv4.tcp_rmem = 4096 25165824 25165824 net.core.rmem_max = 25165824 net.core.rmem_default = 25165824 net.ipv4.tcp_wmem = 4096 65536 25165824 net.core.wmem_max = 25165824 net.core.wmem_default = 65536 net.core.optmem_max = 25165824 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_orphans = 262144 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 # you shouldn't be using conntrack on a heavily loaded server anyway, but these are # suitably high for our uses, insuring that if conntrack gets turned on, the box doesn't die # net.ipv4.netfilter.ip_conntrack_max = 1048576 # net.nf_conntrack_max = 1048576 # For Large File Hosting Servers net.core.wmem_max = 1048576 net.ipv4.tcp_wmem = 4096 87380 524288 # Use swap when we have less than 10% of the physical memory available vm.swappiness=10 Redémarrez ensuite le serveur : reboot Installation du serveur web NGINX : On va builder NGINX à la main avec le script suivant : https://github.com/stylersnico/nginx-openssl-chacha-naxsi Lancez la commande suivante pour se faire (et relancez-la pour faire les mises à jour : cd /tmp && wget --no-check-certificate https://raw.githubusercontent.com/stylersnico/nginx-openssl-chacha/master/build.sh && sh build.sh Les réponses aux deux questions seront n Installation du serveur de bases de données MariaDB : On installe MariaDB depuis les dépôts de l’éditeur : apt-get install software-properties-common -y apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 add-apt-repository 'deb [arch=amd64] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.2/debian stretch main' apt-get update && apt-get install -y mariadb-server Ensuite, on lance la commande suivante pour sécuriser l’installation : mysql_secure_installation Installation de PHP 7 : Installez PHP 7.0-FPM et les modules les plus communs avec la commande suivante : apt-get install -y php-common php-pear php-zip php7.0-cli php7.0-common php7.0-curl php7.0-dev php7.0-fpm php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-mbstring php7.0-mysql php7.0-opcache php7.0-pspell php7.0-readline php7.0-recode php7.0-snmp php7.0-tidy php7.0-xml php7.0-zip Installation de Let’s Encrypt : Ici, on récupère Let’s Encrypt pour générer les certificats SSL gratis par la suite : cd /etc git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt ./letsencrypt-auto --help Installation de NodeJS : Si vous souhaitez installer un blog Ghost ou des applications en NodeJS lancez les commandes suivantes : wget -O- https://deb.nodesource.com/setup_4.x | bash apt-get install -t jessie nodejs -y Installation d’un blog Ghost : Maintenant, téléchargez et installez la dernière version de Ghost sur votre serveur : mkdir -p /var/www/ghost && cd /var/www/ghost wget https://ghost.org/zip/ghost-latest.zip && unzip ghost-latest.zip npm install --production Copiez la configuration par défaut et ajoutez votre nom de domaine dans la configuration de Ghost : cp config.example.js config.js && nano config.js Remplacez les lignes : URL: 'http://my-ghost-blog.com', Par (remplacez votre domaine puis précisez déjà le protocole en https) : URL: 'https://www.nicolas-simond.com', Maintenant, créez l’utilisateur pour Ghost : adduser ghost Et ajoutez-lui les droits sur le site : chown -R ghost:ghost /var/www/ghost Ajoutez ensuite cet utilisateur dans le groupe des sudoers : adduser ghost sudo Automatiser le lancement de Ghost : Maintenant, on va installer Forever qui nous permettra de gérer le serveur Ghost plus facilement et qui en plus nous permettra de le lancer automatiquement au démarrage. Connectez-vous d’abord sur l’utilisateur Ghost : su ghost Maintenant, lancez les commandes suivantes pour installer forever : cd /var/www/ghost sudo npm install -g forever Ensuite, lancez votre blog ghost avec la commande suivante : NODE_ENV=production forever start index.js Pour finir, automatisez le lancement de Ghost au démarrage en ajoutant ceci dans votre crontab (crontab -e) : @reboot NODE_ENV=production forever start /var/www/ghost/index.js Mise en place du reverse proxy Nginx : Téléchargez une configuration de reverse proxy NGINX : mkdir /etc/nginx/conf.d/ && cd /etc/nginx/conf.d/ wget https://raw.githubusercontent.com/stylersnico/my-webserver/master/etc/nginx/conf.d/proxy.conf Créez votre vhost pour Ghost : nano /etc/nginx/sites-enabled/ghost.vhost Et remplissez-le avec ceci (en modifiant le server_name pour mettre votre domaine) : server { listen 80; server_name nicolas-simond.com www.nicolas-simond.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } #Dossier pour l'hébergement de fichiers types PDF|ZIP ... location /static/ { alias /var/www/ghost/static/; } #Renouvellement automatique pour le certificat Let's Encrypt location /.well-known/acme-challenge { alias /var/www/ghost/.well-known/acme-challenge/; } } Créez le dossier et redémarrez Nginx : mkdir /var/www/ghost/static && systemctl restart nginx Mise en place du certificat Let’s Encrypt : Maintenant, on va installer un certificat ECDSA pour le blog ghost. Créez les dossiers nécessaires avec les commandes suivantes : mkdir /etc/letsencrypt/live-ecdsa/ mkdir /etc/letsencrypt/live-ecdsa/nicolas-simond.com cd /etc/letsencrypt/live-ecdsa/nicolas-simond.com mkdir letmp Maintenant, créez la clé privée pour votre certificat : openssl ecparam -genkey -name secp384r1 > privkey-p384.pem Maintenant, créez un CSR, indiquez votre domaine correctement : openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=nicolas-simond.com" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:nicolas-simond.com,DNS:www.nicolas-simond.com")) -outform der -out csr-p384.der Rendez-vous dans le dossier temporaire « letmp » et créez votre certificat avec Let’s Encrypt : cd letmp /etc/letsencrypt/letsencrypt-auto certonly -a webroot --email mail@yolo.com --webroot-path /var/www/ghost/ --csr /etc/letsencrypt/live-ecdsa/nicolas-simond.com/csr-p384.der --renew-by-default --agree-tos cat 0001* > /etc/letsencrypt/live-ecdsa/nicolas-simond.com/chain.pem Si l’opération réussie, vous devrez juste configurer le certificat ECDSA dans votre vhost nginx 🙂 ssl_certificate /etc/letsencrypt/live-ecdsa/nicolas-simond.com/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/nicolas-simond.com/privkey-p384.pem; Éditez votre vhost nginx pour rajouter les informations nécessaires : server { listen 80; listen 443 ssl http2; if ($scheme != "https") { rewrite ^ https://$http_host$request_uri? permanent; } ssl_certificate /etc/letsencrypt/live-ecdsa/nicolas-simond.com/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/nicolas-simond.com/privkey-p384.pem; server_name nicolas-simond.com www.nicolas-simond.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } location /static/ { alias /var/www/ghost/nicolas-simond.com/static/; } location ~ ^/(keybase.txt) { root /var/www/ghost/nicolas-simond.com; } location /.well-known/acme-challenge { alias /var/www/ghost/nicolas-simond.com/.well-known/acme-challenge/; } } Et redémarrez votre serveur pour tester le bon fonctionnement du bordel En cas d’erreur, relancez la commande suivante en root : chown -R ghost:ghost /var/www/ghost/ Et la commande suivante avec l’utilisateur ghost : forever restartall Lancez la commande suivante pour voir l’état de l’instance ghost : forever list Et maintenant, accédez à l’installateur du blog ghost depuis l’URL suivante : https://www.nicolas-simond.com/ghost/setup/one/ Installation d’un blog WordPress : Maintenant, téléchargez et installez la dernière version de WordPress sur votre serveur : cd /var/www/ wget https://fr.wordpress.org/wordpress-4.8-fr_FR.zip && unzip wordpress*.zip && rm wordpress*.zip Maintenant, créez l’utilisateur pour wordpress : adduser wordpress Et ajoutez-lui les droits sur le site : chown -R wordpress:www-data /var/www/wordpress Ajoutez ensuite cet utilisateur dans le groupe www-data : adduser wordpress www-data Création du fichier de configuration NGINX : Créez le vhost avec la commande suivante : nano /etc/nginx/sites-enabled/wordpress.vhost Et copiez-y ceci : server { listen 80; if ($http_host = abyssproject.net){ return 303 https://www.abyssproject.net$request_uri; } server_name abyssproject.net www.abyssproject.net; root /var/www/wordpress/; location /.well-known/acme-challenge { alias /var/www/wordpress/.well-known/acme-challenge/; } index index.php; error_log /var/log/abyssproject.net/error.log; access_log /var/log/abyssproject.net/access.log combined; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \.php$ { try_files /e1d4ea2d073f20faebaf9539ddde872c.htm @php; } location @php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/wordpress.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } } Créez les dossiers de log : mkdir -p /var/log/abyssproject.net/ Création du fichier de configuration PHP : Créez le pool fpm avec la commande suivante : nano /etc/php/7.0/fpm/pool.d/wordpress.conf Et copiez-y ceci : [wordpress] listen = /var/lib/php7.0-fpm/wordpress.sock listen.owner = wordpress listen.group = www-data listen.mode = 0660 user = wordpress group = www-data pm = dynamic pm.max_children = 32 pm.start_servers = 8 pm.min_spare_servers = 4 pm.max_spare_servers = 16 pm.max_requests = 40000 chdir = / env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Redémarrez les services avec la commande suivante : systemctl restart nginx && systemctl restart php7.0-fpm Mise en place du certificat Let’s Encrypt : Maintenant, on va installer un certificat ECDSA pour le blog WordPress. Créez les dossiers nécessaires avec les commandes suivantes : mkdir /etc/letsencrypt/live-ecdsa/ mkdir /etc/letsencrypt/live-ecdsa/abyssproject.net cd /etc/letsencrypt/live-ecdsa/abyssproject.net mkdir letmp Maintenant, créez la clé privée pour votre certificat : openssl ecparam -genkey -name secp384r1 > privkey-p384.pem Maintenant, créez un CSR, indiquez votre domaine correctement : openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=abyssproject.net" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:abyssproject.net,DNS:www.abyssproject.net")) -outform der -out csr-p384.der Rendez-vous dans le dossier temporaire « letmp » et créez votre certificat avec Let’s Encrypt : cd letmp /etc/letsencrypt/letsencrypt-auto certonly -a webroot --email mail@yolo.com --webroot-path /var/www/wordpress/ --csr /etc/letsencrypt/live-ecdsa/abyssproject.net/csr-p384.der --renew-by-default --agree-tos cat 0001* > /etc/letsencrypt/live-ecdsa/abyssproject.net/chain.pem Si l’opération réussie, vous devrez juste configurer le certificat ECDSA dans votre vhost nginx 🙂 ssl_certificate /etc/letsencrypt/live-ecdsa/abyssproject.net/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/abyssproject.net/privkey-p384.pem; Éditez votre vhost nginx pour rajouter les informations nécessaires : server { listen 80; listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live-ecdsa/abyssproject.net/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/abyssproject.net/privkey-p384.pem; if ($scheme != "https") { rewrite ^ https://$http_host$request_uri? permanent; } if ($http_host = abyssproject.net){ return 303 https://www.abyssproject.net$request_uri; } server_name abyssproject.net www.abyssproject.net; root /var/www/wordpress/; location /.well-known/acme-challenge { alias /var/www/wordpress/.well-known/acme-challenge/; } index index.php; error_log /var/log/abyssproject.net/error.log; access_log /var/log/abyssproject.net/access.log combined; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \.php$ { try_files /e1d4ea2d073f20faebaf9539ddde872c.htm @php; } location @php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/tap.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } } Redémarrez ensuite NGINX et accédez à l’URL du blog pour l’installer : https://www.abyssproject.net/ Installation de Fresh RSS: Maintenant, téléchargez et installez la dernière version de WordPress sur votre serveur : cd /var/www/ wget https://github.com/FreshRSS/FreshRSS/archive/master.zip && unzip master.zip && rm master.zip && mv FreshRSS-master/ rss/ Maintenant, créez l’utilisateur pour Fresh RSS : adduser rss Et ajoutez-lui les droits sur le site : chown -R rss:www-data /var/www/rss Ajoutez ensuite cet utilisateur dans le groupe www-data : adduser rss www-data Création du fichier de configuration NGINX : Créez le vhost avec la commande suivante : nano /etc/nginx/sites-enabled/rss.vhost Et copiez-y ceci : server { listen 80; server_name rss.nicolas-simond.com; root /var/www/rss/; index index.html index.php; location /.well-known/acme-challenge { alias /var/www/rss/.well-known/acme-challenge/; } error_log /var/log/rss.nicolas-simond.com/error.log; access_log /var/log/rss.nicolas-simond.com/access.log combined; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^.+?\.php(/.*)?$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/rss.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location / { try_files $uri $uri/ index.php; } } Créez les dossiers de log : mkdir -p /var/log/rss.nicolas-simond.com/ Création du fichier de configuration PHP : Créez le pool fpm avec la commande suivante : nano /etc/php/7.0/fpm/pool.d/rss.conf Et copiez-y ceci : [rss] listen = /var/lib/php7.0-fpm/rss.sock listen.owner = rss listen.group = www-data listen.mode = 0660 user = rss group = www-data pm = dynamic pm.max_children = 32 pm.start_servers = 8 pm.min_spare_servers = 4 pm.max_spare_servers = 16 pm.max_requests = 40000 chdir = / env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Redémarrez les services avec la commande suivante : systemctl restart nginx && systemctl restart php7.0-fpm Mise en place du certificat Let’s Encrypt : Maintenant, on va installer un certificat ECDSA pour Fresh RSS. Créez les dossiers nécessaires avec les commandes suivantes : mkdir /etc/letsencrypt/live-ecdsa/ mkdir /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com cd /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com mkdir letmp Maintenant, créez la clé privée pour votre certificat : openssl ecparam -genkey -name secp384r1 > privkey-p384.pem Maintenant, créez un CSR, indiquez votre domaine correctement : openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=rss.nicolas-simond.com" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:rss.nicolas-simond.com")) -outform der -out csr-p384.der Rendez-vous dans le dossier temporaire « letmp » et créez votre certificat avec Let’s Encrypt : cd letmp /etc/letsencrypt/letsencrypt-auto certonly -a webroot --email mail@yolo.com --webroot-path /var/www/rss/ --csr /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/csr-p384.der --renew-by-default --agree-tos cat 0001* > /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/chain.pem Si l’opération réussie, vous devrez juste configurer le certificat ECDSA dans votre vhost nginx 🙂 ssl_certificate /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/privkey-p384.pem; Éditez votre vhost nginx pour rajouter les informations nécessaires : server { listen 80; listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/chain.pem; ssl_certificate_key /etc/letsencrypt/live-ecdsa/rss.nicolas-simond.com/privkey-p384.pem; server_name rss.nicolas-simond.com; root /var/www/rss/; index index.php; if ($scheme != "https") { rewrite ^ https://$http_host$request_uri? permanent; } location /.well-known/acme-challenge { alias /var/www/rss/.well-known/acme-challenge/; } error_log /var/log/rss.nicolas-simond.com/error.log; access_log /var/log/rss.nicolas-simond.com/access.log combined; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^.+?\.php(/.*)?$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/rss.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location / { try_files $uri $uri/ index.php; } } Redémarrez ensuite NGINX et accédez à l’URL de FreshRSS pour l’installer : https://rss.nicolas-simond.com/ Pour finir : Vous l’aurez surement remarqué, toutes ces configurations sont celles de mes sites, le tout est disponible sur mon Github 🙂 https://github.com/stylersnico/my-webserver Partager : Articles similaires Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.