Aller au contenu

[TUTO]Création d'un Certificat "wilcard" Let'sEncrypt avec la méthode "acme.sh"


oracle7

Messages recommandés

  • 2 semaines après...

Bonjour à tous!!

Merci pour ce super tuto très clair et très détaillé.

J'ai réussi à le faire une première fois .. mais je pense mettre loupé dans la validité de la clef ovh ... du coup j'ai voulu recommencé et là j'y arrive plus ... j'ai une erreur invalid domain ... et je me rappelle plus ce que j'avais fait la première fois car j'avais adapté en fonction de ma situation .. car j'ai un sous domaine.

Pouvez-vous me valider

1) creéation des clefs sur l'api OVH pour mon domaine

https://api.ovh.com/createToken/?GET=/domain/zone/monDomain.fr&GET=/domain/zone/monDomain.fr/&PUT=/domain/zone/monDomain.fr/&POST=/domain/zone/monDomain.fr/&DELETE=/domain/zone/monDomain.fr/record/

2) création du certificat pour mon domaine, *.monDomaine et *.monSousDomaine.monDomaine

./acme.sh --issue --keylength 4096 -d "monDomaine.fr" -d "*.monDomaine.fr" -d "*.monSousDomaine.monDomaine.fr" --dns "ovh-eu"

 

3) Déploiement du certificat => la pas de soucis je pense

Par avance merci pour votre retour.

Cordialement

Christophe

Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800

Bonjour,

il y a 35 minutes, Kiki91800 a dit :

2) création du certificat pour mon domaine, *.monDomaine et *.monSousDomaine.monDomaine

./acme.sh --issue --keylength 4096 -d "monDomaine.fr" -d "*.monDomaine.fr" -d "*.monSousDomaine.monDomaine.fr" --dns "ovh-eu"

Je crains que ta commande ne soit pas bien formulée et ce pour a priori deux raisons:

  • Tu ne peux pas créer un certificat pour "trois niveaux" mais seulement pour ton domaine et son wilcard qui lui couvre le niveau immédiatement inférieur au domaine de base.
    Si tu veux un certificat spécifique pour ton "troisième niveau" càd "*.monSousDomaine.monDomaine.fr", il faut faire un autre certificat car le certificat pour ton domaine "monDomaine.fr" ne couvrira pas et ne peux couvrir ce niveau.
    Il te faudra aussi que pour ce sous-domaine "monSousDomaine.monDomaine.fr" tu définisses impérativement un enregistrement de type A ou CNAME car Let's Encrypt vérifie l'existence de chaque nom de domaine avant de créer effectivement le certificat sinon il ne fait rien et te renvoie "invalid domain".
     
  • Pour l'option "--dns" tu as dû lire la procédure en diagonale et tu as perdu de l'information en route 🤪, tu dois mettre "dns-ovh" et pas "ovh-eu". En effet, "ovh-eu" est la valeur de la variable d'environnement "OVH_END_POINT" et pas le protocole de validation que la méthode met en œuvre.

Avant de reprendre le processus, assures-toi de bien supprimer dans ta zone DNS locale de ton domaine chez OVH, tout enregistrement TXT nommé du style "-acme-challenge.monDomaine.fr" sinon tu récolteras une erreur.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Merci pout pour ton retour @oracle7

Oui en effet c'est un mauvais copié collé ... 🙂

J'ai pourtant l'impression que j'avais réussit à créer un certificat sur 3 niveaux .. non ?

image.png.2502fbfa85deb595311d75236c36ce2f.png

J'ai bien un enregistrement de type cname défini sur ce sous domaine.

Concernant l'enregistrement txt, même si la génération du certificat a fonctionné je n'ai jamais eu d'enregistrement txt de généré ...

 

Modifié par Kiki91800
Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800

Bonjour,

il y a 23 minutes, Kiki91800 a dit :

J'ai pourtant l'impression que j'avais réussit à créer un certificat sur 3 niveaux .. non ?

C'est étonnant voire bizarre, à voir s'il marche effectivement ...

il y a 25 minutes, Kiki91800 a dit :

Concernant l'enregistrement txt, même si la génération du certificat a fonctionné je n'ai jamais eu d'enregistrement txt de généré ...

Quand tout se passe bien Let's Encrypt crée l'enregistrement puis le supprime une fois son contrôle d'existence du domaine fait mais si il y a une erreur, il reste et cela perturbe ensuite le processus. Donc pour toi si tu as pu créer le certificat, c'est bon et il est normal qu'il n'y en ait plus.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800

Bonjour,

Je t'avoue qu'à la vue de tes copies d'écran, être perplexe, cela ne devrait pas marcher mais bon je peux me tromper ...

Essaies de taper https://xxxx.monSousDomaine.monDomaine.fr, tu verras bien si ton navigateur t'envoie une alerte de sécurité ou pas.

il y a 56 minutes, Kiki91800 a dit :

Pour toi il faut que je crée 2 certificats 

  • monDomaine et *.monDomaine
  • monDomaine et *.monSousDomaine.monDomaine

Sinon j'aurai fait ceci :

  • monDomaine et *.monDomaine
  • monSousDomaine.monDomaine et *.monSousDomaine.monDomaine

Cordialement

oracle7😉

Modifié par oracle7
Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800

Bonjour,

il y a une heure, Kiki91800 a dit :

Je te confirme aucun avertissement...

Alors c'est que cela marche et que le navigateur à bien trouver le certificat en face de sous-domaine sinon il t'aurait envoyé un message comme quoi ta connexion était bloquée car non sécurisée comme quand tu mets en URL l'@IP de ton NAS par ex.

Du coup avec l'URL : " https://xxxx.monSousDomaine.monDomaine.fr " ton navigateur affiche bien un cadenas dans la barre d'URL, j'ai bon ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800 Est-ce que tu as le même problème qu'ici ? 

De mon côté, j'ai un renouvellement automatique d'acme le 17/11 pour mon VPS, pour mon serveur local j'utilise Certbot plutôt qu'acme donc difficile de comparer.

Du coup le 17/11 si ça se renouvelle pas non plus pour moi c'est que le problème est chez acme ou OVH.

Question, est-ce que tu as essayé de mettre à jour acme ? ça se fait avec l'argument --upgrade.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Le 12/11/2021 à 15:10, oracle7 a dit :

Tu ne peux pas créer un certificat pour "trois niveaux" mais seulement pour ton domaine et son wilcard qui lui couvre le niveau immédiatement inférieur au domaine de base.
Si tu veux un certificat spécifique pour ton "troisième niveau" càd "*.monSousDomaine.monDomaine.fr", il faut faire un autre certificat car le certificat pour ton domaine "monDomaine.fr" ne couvrira pas et ne peux couvrir ce niveau.
Il te faudra aussi que pour ce sous-domaine "monSousDomaine.monDomaine.fr" tu définisses impérativement un enregistrement de type A ou CNAME car Let's Encrypt vérifie l'existence de chaque nom de domaine avant de créer effectivement le certificat sinon il ne fait rien et te renvoie "invalid domain".

Euh.....

Tu as raison de dire qu'un wildcard ne couvre que son propre niveau, mais par contre on peut tout à fait intégrer dans un même certificat plusieurs niveaux.

Le certificat ndd peut avoir pour SAN : *.ndd, monautredomaine.ndd, *.monautredomaine.ndd

Tant que les noms de domaine peuvent être résolus, le certificat pourra couvrir l'ensemble des noms. Il faut bien entendu avoir un enregistrement A ou CNAME pour mondomaine.ndd et un CNAME pour *.mondomaine.ndd.

Voir cette discussion :

https://www.nas-forum.com/forum/topic/68211-petit-problème-sur-la-génération-de-certificats-lets-encrypt-wildcard-avec-acmesh-sur-des-domaines-de-deuxième-niveau/?do=findComment&comment=1319420347

 

Lien vers le commentaire
Partager sur d’autres sites

@Mic13710

Bonjour,

Merci de ta précision car j'étais persuadé que l'on ne pouvait pas mettre plusieurs niveaux dans un certificat et que l'on était limité à deux. La manipulation de @Kiki91800 le prouve aussi et tant mieux car cela ouvre du coup des perspectives intéressantes, dans mon cas du moins.

Cordialement

oracle7😉

 

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

A partir du moment où le wildcard le couvre, on devrait pouvoir se passer de faire un enregistrement spécifique pour le domaine de second niveau.

Le SAN devient alors : *.ndd, *.monautredomaine.ndd

Comme il se doit, il faut un CNAME pour *.monautredomaine.ndd

Perso, je préfère avoir le domaine (ici monautredomaine.ndd) en dur pour une meilleure compréhension de la zone. Et comme c'est souvent pour atteindre des sites distincts, c'est un passage obligé dans ce cas avec soit une enregistrement A, soit un ddns..

Lien vers le commentaire
Partager sur d’autres sites

je viens de me rappeler que j'avais mis en place des règle sur le pare feu du nas ... 

image.png.c4b5d566c891d4cabd5be22b375c0a80.png

Port 443 uniquement depuis la France ...

Et le port 80 est bloqué sur ma box internet

Vu qu'on passe par les API ovh ... j'imagine que le port 80 est pas utilisé mais le 443 oui ... par contre j'ai un doute sur le fait d'autoriser que la france ... non ?

Lien vers le commentaire
Partager sur d’autres sites

@Kiki91800

Bonjour,

Pour mémoire les serveurs Let'sEncrypt sont aux USA, mais si tu as mis en œuvre le présent TUTO donc avec le protocole DNS-01, on se fiche alors de l'ouverture des ports 80 et 443.  Leur ouverture dans le pare-feu du NAS ne sert et n'est nécessaire que pour les flux HTTP et HTTPS liés à d'autres services.

Par ailleurs, à la vue de ta copie d'écran j'espère que la ligne "Refuser" (4ème à partir du bas) n'est pas celle qui refuse "Tous" (ports, Protocoles et IP sources) car dans ce cas les règles qui sont en dessous d'elle ne seront jamais exécutées.

Pour mémoire, les règles du pare-feu sont exécutées du haut vers le bas et le processus de contrôle pour une @IP donnée s'arrête à la première règle satisfaite. Il ne va alors pas plus loin.

Du coup, je t'invite à relire attentivement le TUTO : Sécuriser les accès à son NAS pour t'assurer que ton pare-feu est correctement configuré.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

merci @oracle7 dsl pour la réponse tardive mais j'ai été pas mal pris ces derniers temps ...

Non le refusé ne refuse pas tout.

Je viens de tout reprendre, une nouvelle fois depuis le début, et là tout est OK ... je pense que je m'étais loupé dans l'api ovh en oubliant les '*' dans l'url devant les POST, PUT et GET... 

https://api.ovh.com/createToken/?GET=/domain/zone/mydomain.com/*&POST=/domain/zone/mydomain.com/*&PUT=/domain/zone/mydomain.com/*&GET=/domain/zone/mydomain.com&DELETE=/domain/zone/mydomain.com/record/*

 

Du coup pour générer un certificat sur plusieurs niveau il suffit d'ajouter le niveau ... exemple

docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'mydomain.com' -d '*.mydomain.com' -d '*.subDomain.mydomain.com' --dns dns_ovh"

Ne tenez pas compte du docker je suis passé entre temps par la conteneurisation pour gérer cela.

Encore merci à tous pour vos tutos, conseils, support ... etc ... 🙂

@chris94440

Modifié par Kiki91800
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.