Synology : publier une application Web avec le Reverse Proxy
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir comment mettre en place un certificat SSL Let's Encrypt sur un sous-domaine de son NAS Synology pour une application spécifique. Nous pouvons imaginer plein de cas d'usage différents puisque sur un NAS, nous pouvons héberger de nombreuses applications différentes : WordPress, FreshRSS, etc.
Ainsi, on peut imaginer que l'application "App1" soit accessible sur cette adresse :
http://<IP du NAS>:8080
Donc sur le port "8080" et en HTTP, et que l'on souhaite qu'elle soit accessible sous cette forme :
https://app1.nas-florian.synology.me ou https://app1.nas-florian.synology.me:8080
Ainsi, l'application devient accessible en "HTTPS" avec un certificat valide, le tout en utilisant un sous-domaine de votre domaine "synology.me". Pour cela, on s'appuie à la fois de Let's Encrypt pour obtenir un certificat valide (gratuit) et de la fonction "Reverse Proxy" pour publier l'application en HTTPS sur le port de notre choix (sans reconfigurer l'application en elle-même).
Dans cet exemple, je vais prendre l'application FreshRSS : nous avons vu comment l'installer au sein d'un autre article. Toutefois, elle est accessible en HTTP. En suivant ce tutoriel, vous pouvez rendre accessible l'application en HTTPS. Je souhaite que "http://192.168.1.10:8080" soit accessible via "https://freshrss.nas-flo.synology.me:6500".
II. Demander un certificat Let's Encrypt pour un sous-domaine
La première étape consiste à se procurer un certificat Let's Encrypt. Pour cela, connectez-vous à DSM, et suivez ce chemin : Panneau de configuration > Sécurité (1) > Certificat (2) > Ajouter (3). Un assistant va se lancer.
Choisissez "Ajouter un nouveau certificat" et poursuivez.
Nommez ce certificat, par exemple "freshrss", dans le but d'avoir un nom parlant. Ensuite, choisissez "Procurez-vous un certificat auprès de Let's Encrypt" et continuez. Pour rappel, les certificats Let's Encrypt sont gratuits et valides 90 jours, mais le NAS pourra effectuer un renouvellement automatique.
Pour le nom de domaine, indiquez le sous-domaine pour lequel vous souhaitez obtenir un certificat, ainsi qu'un courrier électronique. Dans mon cas, j'indique ceci : freshrss.nas-florian.synology.me. Cliquez sur "Effectué".
Note : pour avoir un certificat utilisable sur plusieurs sous-domaines, vous pouvez indiquer le nom de domaine "nas-florian.synology.me" et indiquer "*.nas-florian.synology.me" dans la section "Autre nom de l'objet".
Notre nouveau certificat SSL est visible dans la liste des certificats : excellente nouvelle !
III. Configurer le reverse proxy Synology
Passons à la configuration du reverse proxy en lui-même. D'ailleurs, si la notion de reverse proxy est flou pour vous, je vous recommande de lire mon article à ce sujet : Qu'est-ce qu'un reverse proxy ?
Sur l'interface de DSM, suivez ce chemin : Panneau de configuration > Portail de connexion (1) > Avancé (2) > Proxy inversé (3).
Une fenêtre s'ouvre... Cliquez sur "Créer" pour créer une nouvelle configuration. Renseignez les options suivantes :
- Nom du proxy inversé : tout simplement le nom de la configuration
- Source
- Protocole : HTTPS, car nous souhaitons utiliser le protocole HTTPS + le certificat SSL pour se connecter de manière sécurisée à l'application
- Port : utilisez un port personnalisé comme le 6500 ou le port par défaut du protocole HTTPS, à savoir 433 (surtout utile pour un site Web, sinon il vaut mieux masquer le service)
- Activer HSTS : une fonction de sécurité pour forcer l'utilisation d'une connexion sécurisée. C'est recommandé, mais pas obligatoire (à voir comment réagit votre application).
- Destination
- Protocole : HTTP car l'accès local (direct) à notre application s'effectue en HTTP
- Nom d'hôte : l'application est hébergée sur le NAS en lui-même, donc on met "localhost"
- Port : le port d'écoute de l'application, ici le port 8080
Cliquez sur "Sauvegarder". Ce qui donne :
Voilà, le reverse proxy est configuré ! Il reste une dernière étape : associer le certificat à la configuration du reverse proxy.
Toujours dans le Panneau de configuration, retournez dans "Sécurité" puis "Certificat". Ici, cliquez sur "Paramètres". Une fenêtre s'ouvre avec une liste de services... Vous devez repérer un service correspondant à votre entrée dans le reverse proxy Synology : associez-lui le certificat Let's Encrypt créé précédemment. Validez.
La configuration est terminée ! Place au test !
IV. Tester la connexion
Pour tester la connexion au travers du reverse proxy, nous n'allons spécifier l'adresse IP, le protocole HTTP et le port 8080. Non, non, on va utiliser les informations déclarées dans la configuration du reverse proxy. Ce qui donne l'adresse suivante :
https://freshrss.nas-florian.synology.me:6500
J'accède bien à mon application FreshRSS, et en plus, la connexion est sécurisée ! Bravo !
V. Conclusion
Nous venons de voir comment configurer le reverse proxy d'un NAS Synology pour publier une application de façon sécurisée grâce au protocole HTTPS et à l'ajout d'un certificat SSL Let's Encrypt. Le tout en quelques minutes, en utilisant des fonctions gratuites.
Au travers de mes différents tutoriels, je vous encourage à utiliser Let's Encrypt pour la partie certificat car c'est gratuit, d'autant plus quand c'est couplé à "synology.me". Toutefois, vous pouvez aussi utiliser un nom de domaine vérifié (par exemple "mon-domaine.fr") avec un certificat acheté en ligne auprès d'une autorité de certification (GeoTrust, etc.) ou un certificat Let's Encrypt : adaptez à vos besoins.
Quoi qu'il en soit, c'est quand même plus propre et agréable d'avoir un sous-domaine sécurisé pour accéder à une application, plutôt qu'un accès HTTP en utilisant l'adresse IP du NAS... Je vous encourage à sécuriser l'accès à vos applications même si c'est pour un usage personnel... A vous de jouer !
Bonjour Florian,
Avant toutes choses, un grand merci pour la qualité et la clarté de vos tutoriels.
Vous serait-il possible de faire le même tutoriel sans le mode bridge mais en utilisant un réseau Macvlan pour mes containers avec une range d’ip dédiés à mes containers et le tout en accès https ? Dans ce mode là est-il obligatoire de créer une interface virtuelle pour mon Nas Synology ?
Merci pour votre retour
Gérard
ça m’intéresse aussi 🙂
Bonjour, merci pour ce tuto. Malheureusement je rencontre un problème pour la lecture des vidéos depuis l’application PHOTOS sur iOS. Toutes les autres fonctions (sauvegarde, lecture photos) marchent sans problèmes. Ce n’est vraiment que la lecture de vidéos qui coince.
Une idée du problème ?