# Service WEB # Apache 2 ### Introduction Dans cette docs vous retrouverez comment déploier un serveur apache2, le configurer proprement et mettre en place un reverse proxy ainsi que des commandes utiles. Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 20192, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. ### Installation Rien de plus simple pour l'installation de Apache 2 ### Configuration Les fichiers de configuration de site présent dans `/etc/apache2/sites-available/`, par défaut vous retrouverez le fichier `000-default.conf` avec la configuration suivante. ```bash ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` Je vous conseil de garder un exemple de ce fichier, rendez-vous dans le dossier et faite un `cp 000-default.conf 000-template.conf` cela vous permettera de faire un retour en arrière ou de vous basé sur une préconfiguration existante lors du déploiement de nouvelle configuration. Modifions le fichier **000-default.conf** pour une configuraiton basique.\\ ```bash nano 000-default.conf ServerName www.iskia.fr #Renseignez votre nom de domaine ServerAdmin contact@iskia.fr #Renseignez votre adresse mail de contact DocumentRoot /var/www/vitrine #Renseignez le chemin d'accès à votre site ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` Si vous souhaitez avoir un deuxième site hébergé sur votre serveur mais accessible via un sous-domaine de votre site, voici la configuration de base à effectuer. Exemple de configuration pour Bookstack. ```bash nano 001-bookstack.conf ServerName wiki.iskia.fr #Renseignez votre nom de domaine avec le sous-domaine correspondant ServerAdmin contact@iskia.fr #Renseignez votre adresse mail de contact DocumentRoot /var/www/bookstack #Renseignez le chemin d'accès à votre site Options FollowSymlinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` ### Reverse Proxy Si vous avez une application web qui utilise un port web autre que 80, mais que vous voulez qu'elle soit accessible via une URL sans port, vous devez mettre en place un reverse-proxy. Dans l'exemple ci-dessous, je place mon reverse proxy sur le port 3000 dans mon fichier de configuration de site apache sous ssl `000-default-le-ssl.conf`. Vous pouvez retrouver comment déployer du ssl dans [la page suivante](https://wiki.iskia.fr/books/service-web/page/certbot) !. ```bash RequestHeader set "X-Forwarded-Proto""https" SetEnv proxy-nokeepalive 1 ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ProxyErrorOverride off SetEnv proxy-nokeepalive 1 ProxyPreserveHost On ``` ### Commandes
CommandeDescription
`a2enmod [nom du module]`Permet d'activer des modules apache
`a2ensite [nom du fichier]`Permet d'activer une nouvelle configuration de site
`a2enconf [nom de la configuration]`Permet d'activer une configuration
`systemctl restart apache2`Permet de relancer le service apache2
`cat /var/log/apache2/access.log`Permet d'afficher les logs d'accès à votre site
`cat /var/log/apache2/error.log`Permet d'afficher les logs d'erreur à votre site
# Certbot ### Introduction Sur cette page nous expliquons comment utiliser de manière simple l'application certbot pour générer des certificats SSL rapidement pour **apache2** avec **certbot**. ### Installation Pour installer certbot nous passons par snap un gestionnaire de paquet linux. ```bash sudo snap install certbot ``` ### Configuration Suite à l'installation certbot n'est pas encore utilisable nous devons défnir un lien symbolique. ```bash sudo ln -s /snap/bin/certbot /usr/bin/certbot ``` Certbot par défaut effectue un renouvellement automatique des certificats qu'il à généré. Nous pouvons tester la configuration en executant la commande suivante. ```bash sudo certbot renew --dry-run ``` ### Utilisation Si votre configuration de **apache** est correctement établie, vous pouvez utiliser la commande ci-dessous. Certbot se basera automatiquement sur votre configuration existante ```bash certbot --apache ``` Suivez les instructions afficher dans le terminal. Par défaut certbot mettera une redirection du http vers le https pour évtier les accès non sécurisé à votre site.