Ldfa Posté(e) le 30 décembre 2019 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
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.