Mise en place d’un reverse proxy avec Apache

La mise en place d’un reverse proxy permet de sécuriser la connexion entre un navigateur (ou une application mobile) et une application hébergée sur votre serveur.
Si on prend l’exemple de Navidrome, l’application intègre son propre serveur web qui comprend un minimum de sécurité. Par contre, on ne retrouve pas une gestion TLS/SSL ou le suivi des dernières bonnes pratiques de sécurité comme sur un « vrai » serveur Web.
C’est pour cette raison que nous allons utiliser Apache comme intermédiaire entre le monde extérieur et notre serveur Navidrome.

Prérequis

Il faut dans un premier temps activer les modules Apache requis :
sudo a2enmod proxy
sudo a2enmod proxy_http


Le serveur Apache doit ensuite être redémarré pour que ces nouveaux modules soient pris en compte :
sudo systemctl restart apache2

Remarque : pour voir la liste des modules activés sur votre serveur Apache, vous pouvez exécuter la commande sudo apachectl -M

Zone DNS

Dans l’interface d’administration de votre fournisseur d’accès, ajoutez une entrée CNAME dans la Zone DNS de votre nom de domaine.

Dans l’exemple précédent, on fait pointer le sous-domaine musique.mondomaine.url vers l’url principale du serveur (en l’occurence un dyndns).

Ajout du VirtualHost Apache

Dans le répertoire /etc/apache2/sites-available, ajoutez un nouveau fichier de configuration (ex: musique.mondomaine.url.conf) pour votre sous-domaine.

<VirtualHost *:80>
    ServerName musique.mondomaine.url
    ErrorLog ${APACHE_LOG_DIR}/mondomaine/musique.error.log
    CustomLog ${APACHE_LOG_DIR}/mondomaine/musique.access.log combined
    ProxyRequests off    
    ProxyPass / http://localhost:4533/
    ProxyPassReverse / http://localhost:4533/                                                                                                                                                           
</VirtualHost>
  • ServerName permet de spécifier le sous-domaine concerné.
  • ProxyPass et ProxyPassReverse font le lien entre le path voulu et l’adresse du serveur destinataire, et ajustent l’URL dans les en-têtes HTTP.
  • ProxyRequests permet d’activer et de désactiver la fonctionnalité de serveur mandataire, doit être à Off pour des raisons de sécurité

Exécutez ensuite les commandes suivantes afin de prendre en compte le nouveau VirtualHost:
sudo a2ensite musique.mondomaine.url.conf
sudo systemctl reload apache2

Vous pouvez maintenant tester l’accès en http à votre sous-domaine (musique.mondomaine.url).

Certificat SSL

Pour l’instant votre reverse proxy ne fonctionne qu’en http. Si vous avez déjà suivi l’article Activer le HTTPS sur votre site WordPress, vous devez être familier la commande Certbot.

Exécutez la commande sudo certbot --apache , puis sélectionnez le sous-domaine dans la liste par son numéro et validez. C’est bon, votre application est maintenant accessible en https via votre reverse proxy!

Partager sur :