[TUTO] Créer des Wildcard avec NginxProxyManager

morgyann

Grand Maître Jedi
Membre Confirmé
2 Février 2023
3 183
774
263
.bzh
yapasdebug.bzh
Ce poste fait suite au poste ici de @Yohpagan et des échanges avec @ArnaudL et @Bambusa29

Un nom de domaine wildcard (ou enregistrement DNS wildcard) est une configuration technique utilisant un astérisque (*) pour rediriger tous les sous-domaines d'un domaine vers une même adresse IP ou un même service, sans avoir besoin de créer d'enregistrement DNS individuel pour chacun.

SÉCURITÉ

Par exemple, un enregistrement *.exemple.com fait que toute tentative d'accès à nimportequoi.exemple.com sera dirigée vers le même serveur, ce qui est utile pour les hébergeurs mutualisés ou les applications multisites. Il est important de ne pas confondre ce concept avec un certificat SSL wildcard, qui, bien qu'utilisant la même syntaxe (*.exemple.com), a pour but de sécuriser les communications HTTPS plutôt que de gérer le routage DNS.

L'avantage réside aussi que vos services (docker par exemple) joignables par un NDD en wildcard derrière un Proxy (NPM par exemple) se rendent invisibles. (cf @Bambusa29 )

Risque
: Le wildcard présente un risque de compromission global : si la clé privée est volée, tous les sous-domaines protégés sont vulnérables.

Wildcard VS Sous-domaine​

Un certificat wildcard utilise un astérisque (*.domaine.com) pour sécuriser un nombre illimité de sous-domaines de premier niveau (ex: jellyfin.domaine.com, sync-in.domaine.com) avec un seul certificat, simplifiant la gestion et réduisant les coûts.

À l'inverse, un sous-domaine certifié individuellement (via certificat standard) est protégé par un certificat dédié à un nom d'hôte précis, offrant une sécurité granulaire (droits suivant les fonctions), mais nécessitant un certificat distinct pour chaque sous-domaine ajouté.

Le choix dépend de la structure et des besoins :

Pour joindre et/ou tester vos services exposés via https, le "mode wildcard" (création automatique) reste le plus adapté et le plus pratique.

Pour exposer des services type CMS (WordPress, Joomla, Gancio, MediaCMS...), un sous-domaine certifié individuellement (ou NDD) permettra d'opérer (chez le registraire), une redirection NDD (si besoin), un référencement SEO, un changement de serveur, des validations et les configurations nécessaires.

1. Registrar - Config​

L'illustration pour la configuration d'un wildcard s'effectuera sur le registrar/hébergeur Infomaniak. Le principe reste le même quel que soit le registrar/hébergeur choisit.

Sur Infomaniak :

  • Connectez-vous à votre compte principal (où sont enregistrés vos domaines).
  • Accéder au « Manager » (icône Applications en haut à droite)

1.1. Création du CNAME​

Pré-requis : votre NDD principal est dirigé vers votre serveur (NgnixProxyManager).

Sur Infomaniak : section Web & Domaines

Sélectionnez le domaine
concerné (si vous en avez plusieurs)

Puis, Zone de DNS > Ajouter un enregistrement > sélectionnez le type CNAME puis, Suivant

1784039132869.png

Dans la fenêtre,


  • Source : indiquez juste l'étoile "*" face au NDD
  • Valeur : indiquez le NDD principal (2ᵉ et 1er niveau)
Puis, Enregistrer

Vous pouvez réitérer cette opération si vous avez plusieurs domaines sous le même compte principal et que vous souhaitez disposer de plusieurs NDD en wildcard.

1784039163274.png


1.2. Générer une clé API

Sur Infomaniak (Manager)

Section « Utilisateurs et profil » -> Mon Profil -> Développeur -> Tokens API

Cliquez sur Créer un token

1784039198368.png


Donnez un nom
au token (par ex wildcard)

Sélectionnez Domain dans la fenêtre Scope.

Puis, Créer le token
1784047967484.png


Entrez le mot de passe de connexion principale à votre compte et copier-coller la clé générée sur un fichier texte (provisoire)

1784039228103.png


2. NPM- Config

Ouvrez à présent l'interface deNginx Proxy Manager installé sur votre serveur.

2.1. Ajouter le certificat

Ouvrez l'onglet Certificats. Puis, Ajouter Certificat et sélectionnez Let's Encript via DNS.

1784039253274.png

Remplissez le formulaire pour la création du certificat "NDD en wildcard" :

Noms de Domaine :
indiquez le NDD avec "*." devant ici pour cette démo "*.yapasdebug.bzh"

Fournisseur DNS : sélectionnez dans la liste déroulante votre registrar (ici Infomaniak)

Contenu du fichier identifiant : ici pour Infomaniak, il faut indiquer la clé (copier-coller du point 1.2) après l'intitulé "dns_infomaniak_token = "

1784039280833.png

Enregistrer et patientez

1784039304383.png



2.2. Créer un NDD en wilcard

Pour créer et attacher un sous-domaine en wilcard à votre service, vous ouvrez l'onglet "Hôtes > Hôtes Proxy > Ajouter Hôte proxy (comme au point 4 de cet article).

1. Avec le mode wildcard, vous créez le nom du "sous" domaine directement dans la première fenêtre (pour l'exemple, je crée "zima.yapasdebug.bzh").

2. Vous indiquez l'adresse IP locale de votre serveur et le port d'écoute de l'application à exposer.

1784039339262.png

3. Sur l'onglet SSL, sélectionnez le certificat "wildcard NDD" créé en 2.1 (ici "*.yapasdebug.bzh") et "Forcer SSL".

Puis Enregister (celui-ci sera généré instantanément).

1784039364582.png


Vérifiez l'exposition effective et sécurisée de votre service / application et, Profitez !

1784039391948.png
 
Dernière édition:
  • J'aime
  • J'adore
Réactions: Bambusa29 et ArnaudL
@morgyann petite remarque sur les wildcard vs les sous domaines en terme de sécurité pur :

Seul l'utilisation d'un wildcard te rend invisible au scan et au force brut derrière un 'reverse proxy' car seul est connu l'enregistrement DNS du sous domaine lié au certificat, pas les 'sub.subdomain', mais encore faut il bien configurer ton Proxy ;)

Utiliser des sous domaines avec certificat les rendra visible via l'enregistrement DNS créé qui est public. Donc c'est Open Bar pour les scans et Force Brut :ROFLMAO:

Pour résumer :

Les sous domaines, très bien pour les services hébergés public : blog, site wordpress pro ou perso...
Les wildcards, très bien pour les services qui doivent rester privés....