Aller au contenu

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


oracle7

Messages recommandés

Merci dans tous les cas à vous  @oracle7 et  @Mic13710

Je reprends tout depuis le début. j'ai certainement omis un élément.

Je n'ai peut être pas besoin de reprendre le paragraphe 3.1 "Création des clés" avec l'API d'OVH?

J'ai conversé les éléments suivants suite à l'exécution de l'API :

  • Application Key
  • Application Secret
  • Consumer Key
Modifié par mickaeulkaeul
Lien vers le commentaire
Partager sur d’autres sites

@oracle7

J'ai repris hier soir le début du tuto pour arriver au même résultat. 

Je le reprendrai à nouveau depuis le début un autre soir de semaine... je pense que je dois faire à chaque fois la même erreur...

Pour cette commande export CERT_DNS="dns_ovh", le "dns_ovh" est à laisser tel quel ou il faut aller réellement remplacer le dns_ovh par le DNS d'OVH?

Juste pour ma culture Dans la paragraphe 4, on demande de faire image.png.b60b6d37c4b243e242be17a41fb7691c.pngalors que nous nous trouvons déjà dans le répertoire /usr/local/share/acme.sh depuis le paragraphe 2 et que nous n'avons pas changé de répertoire entre ces paragraphes. Quelle est la subtilité?

Lien vers le commentaire
Partager sur d’autres sites

@mickaeulkaeul

Bonjour,

il y a 46 minutes, mickaeulkaeul a dit :

Pour cette commande export CERT_DNS="dns_ovh", le "dns_ovh" est à laisser tel quel ou il faut aller réellement remplacer le dns_ovh par le DNS d'OVH?

NON tu laisses tel quel : export CERT_DNS="dns_ovh"

SI tu avais eut un autre fournisseur qu'OVH cela aurait été entre autres par ex "dns_cf" pour CloudFare.

il y a 46 minutes, mickaeulkaeul a dit :

Quelle est la subtilité?

Il n'y a pas de subtilité. J'en fonce simplement le clou car tu pourrais pour X raisons entre temps, avoir naviguer dans l'arborescence su NAS pour observer n'importe quoi. Ainsi je suis sûr que l'utilisateur lance les choses du bon endroit. Pas plus compliqué que cela !

Mais au moins cela prouve que tu suis et est attentif à ce que tu fais et ce qui est indiqué. C'est bien ! 👍

Cordialement

oracle7😉

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

Le 22/08/2021 à 16:18, mickaeulkaeul a dit :

Bonjour, 

Cette après-midi, j'ai voulu dérouler ce Tuto.

Merci en passant à son auteur @oracle7

A l'exécution de de cette commande du paragraphe "4 Création du certificat"

Je n'obtiens pas le résultat même résultat que ce Tuto.

J'ai uniquement ceci : 

[Sun Aug 22 15:32:54 CEST 2021] Changed default CA to: https://acme-v02.api.letsencrypt.org/directory

Pensant avoir oublié quelque chose, j'ai repris depuis le début le tuto et j'arrive au même résultat.

Avez-vous une piste pour m'aiguiller?

@mickaeulkaeul je viens de dérouler cet excellent tuto sur mon Synology en DSM7. Je n'ai pas fait attention à l'edit et j'ai donc généré un certificat zeroSSL. Après relecture j'ai ajouté les 2 nouveaux paramètres et j'ai obtenu le même résultat que toi. Juste la ligne "Changed default CA to: https://acme-v02.api.letsencrypt.org/directory" et j'ai aussi vu que mon fichier account.conf avait la ligne supplémentaire sans avoir rien à faire.

J'ai alors relancé la commande de création de certificats sans les paramètres --set-default-ca --server letsencrypt (donc comme avant) et là le script a de nouveau bien fonctionné, générant un certificat letsencrypt.

Essaye donc ça aussi ! 

Par contre si @oracle7 arrive à nous expliquer ce comportement, je suis preneur ! 

@oracle7 bravo pour ton travail ! 🙂👏👏👏

 

Lien vers le commentaire
Partager sur d’autres sites

@cnonob

Bonjour,

il y a 43 minutes, cnonob a dit :

Par contre si @oracle7 arrive à nous expliquer ce comportement, je suis preneur ! 

Bah en fait, NON désolé je ne sais pas comme cela  a priori.

Tu semble dire que finalement avec un simple ajout direct de la variable d'environnement :

DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'

dans le fichier account.conf, car c'est ce qui se passe finalement après tes manipulations, suffirait à permettre la création du certificat LE. Dont act. Je vais quand même y réfléchir ...

Cela dit, vu que tu es sous DSM 7, il ne faut pas utiliser le script python pour le renouvellement. Cela ne marchera pas car le script n'est plus utile sous DSM7.

Je t'invite donc à regarder mon échange avec @bruno78 en date du 17/08/2021 à la page 30 du présent post. Là je dis qu'il faut entrer dans le gestionnaire de tâches de DSM une commande qui elle n'utilise pas le script python et donc ne lance pas ce dernier. Pour la suite de la procédure, c'est idem.

Je le répète ce que je viens de te dire n'est valable que pour DSM7 et comme je suis pas encore passé sous DSM7 je n'ai pas pu le valider. Soyons bien clairs. Je ferai à court terme une modif dans le TUTO pour prendre en compte cela.

Cordialement

oracle7😉

 

 

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

Bonjour @cnonob @oracle7,

Je viens un peu vous donner de mes nouvelles.

Hier soir j'ai redéroulé le tuto avec la remarque de @cnonob.

Effectivement, je confirme tes dires @cnonob.

Pour la commande de création du certificat, il faut utiliser cette commande 

./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS"

sans mettre à la fin sans mettre --set-default-ca --server letsencrypt

J'ai pu dérouler jusqu'au bout le tuto. Lorsque j'ai déployé le certificat en mode "Ajout d'un certificat", j'aurai dû avoir sous DSM mon certificat par défaut. Or c'est celui de Synology qui y est resté.

@oracle7Est-ce vraiment gênant?

Sachant que lorsque j'ai "Configuré" mon certificat, j'ai mis mon certificat à tous les services. Qd je vais sur la ligne du certificat de synology et que je fais "configurer", je vois bien mon certificats sur tous les services.

Pour le renouvellement du certificat, je verrai si cela fonctionne bien car il a fallu que je me déconnecte de la console SSH à la fin du §5 😕

 

Lien vers le commentaire
Partager sur d’autres sites

@mickaeulkaeul

Bonjour,

il y a 43 minutes, mickaeulkaeul a dit :

Lorsque j'ai déployé le certificat en mode "Ajout d'un certificat", j'aurai dû avoir sous DSM mon certificat par défaut. Or c'est celui de Synology qui y est resté.

@oracle7Est-ce vraiment gênant?

Non, mais cela aurait été mieux de le faire en mode "annule et remplace" d'entrée.

Ce qui importe maintenant, c'est que tu configures correctement ton certificat en l'affectant aux services qui en ont besoin. A noter qu'en étant pas déclaré certificat par défaut, lors que tu vas créer par exemple une redirection de reverse proxy, le sous-domaine associé se verra automatiquement attribuer le certificat marqué par défaut, donc pas forcément celui que tu aurais voulu, c'est tout. Il faudra donc y penser et corriger le tir en configurant manuellement le bon certificat sur le dit sous-domaine.

Si tu as quittée la session SSH à la fin du §5 et que tu veux reprendre la suite du processus au §6, il te faudra alors en préalable réexporter sous SSH toutes les variables d'environnement pour que cela fonctionne correctement ensuite.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Bonjour,

je n'ai pas osé faire "Annule et remplace" pour conserver le certificat de Synology au cas où il y ait un bug durant la manipulation et que je me retrouve sans certificat. J'ai peut être pas eu le bon résonnement 😄

J'ai bien réexporté toutes les variables... verdict lors de l'exécution du script.

Lien vers le commentaire
Partager sur d’autres sites

@mickaeulkaeul

Il serait souhaitable de mettre à jour votre signature : il y a bien longtemps que la méthode de Fred a disparue et son site aussi d'ailleurs 🤫

Il n'y a aucune contrainte à conserver le certificat Synology. C'est ce que je fais pour tous les NAS dont je m'occupe. J'utilise ce certificat pour le VPN pour ne pas être bloqué lors des renouvellements des certificats LE.

Par contre, il faut bien préciser dans le fichier de conf quel certificat est concerné par le renouvellement par la commande :

$ export SYNO_Certificate="Nom_du_certificat"

Si vous avez suivi le tuto, vous devriez avoir une ligne correspondante dans votre fichier de conf. Il s'agit bien du nom du certificat tel que vous l'avez donné et qui apparait dans la page des certificats et non du ndd auquel il s'applique. Ceci implique qu'il ne faut pas changer le nom du certificat dans DSM, ou si vous le faites, il faut aussi corriger le fichier de conf, sinon le renouvellement ne pourra pas se faire.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Mic13710,

Effectivement, le lien de la préparation des disques ne fonctionne plus... c'était mon côté "nostalgie" 😛 mais j'ai qd même réalisé une petite mise à jour de la signature 😉

Est-ce bien ce fichier de conf ? /usr/local/share/acme.sh/account.conf

Si oui, pour le moment je n'ai aucun paramètre "SYNO_Certificate" dedans. 😕

Lien vers le commentaire
Partager sur d’autres sites

@mickaeulkaeul

Bonjour,

il y a 35 minutes, mickaeulkaeul a dit :

Est-ce bien ce fichier de conf ? /usr/local/share/acme.sh/account.conf

Si oui, pour le moment je n'ai aucun paramètre "SYNO_Certificate" dedans.

C'est normal puisque c'est dans le fichier /volume1/Certs/mondomaine.tld/mondomaine.tld.conf que cette variable d'environnement est stockée. Donc si tu as plusieurs certificat, il te faut bien choisir le bon répertoire.

Cordialement

oracle7😉

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, mickaeulkaeul a dit :

Est-ce bien ce fichier de conf ? /usr/local/share/acme.sh/account.conf

Chez moi pas de dossier Certs sous le volume 1. Mais je n'utilise pas le script, ceci explique peut-être cela.

Le nom du certificate se trouve dans le fichier de conf du certificat :

/usr/local/share/acme.sh/ndd/ndd.conf

Mais en vérifiant sur mon 214, je m’aperçois que cette variable est maintenant utilisée par acme.sh

SAVED_SYNO_Certificate='__ACME_BASE64__START_xxxxxxxxxxxxxxxxxxxxxx__ACME_BASE64__END_'

ce qui fait que le nom du certificat a disparu. Il va falloir que je creuse le pourquoi et surtout quelle conséquence sur le renouvellement car j'ai deux certificats et si le nom n'est pas spécifié, ça risque d'être compliqué.

Lien vers le commentaire
Partager sur d’autres sites

@Mic13710

Bonjour,

il y a 5 minutes, Mic13710 a dit :

Chez moi pas de dossier Certs sous le volume 1. Mais je n'utilise pas le script, ceci explique peut-être cela.

Ce n'est pas une histoire d'utiliser ou non le script du TUTO, mais juste une organisation de fichier (variable CERT_HOME) préconisée dans le TUTO afin que les fichiers soient "protégés" et accessibles facilement sans rentrer dans les arcanes de DSM sinon par défaut acme.sh les place dans le répertoire que tu indiques.

Cela dit, je viens aussi de constater que le nom donné à mon certificat avait aussi disparu au profit d'un nom à rallonge du type de celui que tu donnes. J'imagine et ai constaté dans le code  d'acme.sh, mais je peux me tromper, que le nom du certificat (entre autres données) est crypté (base64encode) dans la chaine après le mot clé "START". Pourquoi ce cryptage, là je n'ai pas encore compris l'utilité et/ou le besoin. Peut-être pour protéger le domaine utilisé dans les échanges avec LE ? Allez savoir ...

Cordialement

oracle7😉

 

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 3 heures, oracle7 a dit :

Ce n'est pas une histoire d'utiliser ou non le script du TUTO

Et je n'utilise pas le tuto non plus. J'applique directement le tuto github

https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide

Intéressante ton approche concernant le nom du certificat. Ca aurait du sens car je pense avoir eu des renouvellements avec probablement cette modification et les certificats se sont bien renouvelés au bon endroit.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

bonjour a tous,

j'avais tester ce tuto mais depuis un moment ca ne fonctionnait plus

j'ai donc repris a 0 ce tuto mais impossible de le faire fonctionner

au moment de générer le certificat une seule ligne apparait

Citation

[Thu Oct  7 23:48:47 CEST 2021] Changed default CA to: https://acme-v02.api.letsencrypt.org/directory

et essayer de faire --force

Citation

[Thu Oct  7 23:56:08 CEST 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
[Thu Oct  7 23:56:10 CEST 2021] Can not init api for: https://acme-v02.api.letsencrypt.org/directory.
[Thu Oct  7 23:56:10 CEST 2021] Sleep 10 and retry.

 

erreur 60 de curl, soucis certificat

je tente donc  "curl https://acme-v02.api.letsencrypt.org/directory"

Citation


curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

 

en fait un certificat est expiré pour curl

j'ai trouvé un paliatif

télécharger les certificats pour curl https://curl.haxx.se/ca/cacert.pem dans un dossier

lancer ces deux commandes

CURL_CA_BUNDLE=/chemindufichier/cacert.pem
export CURL_CA_BUNDLE

et vous relancer la commande

./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS" --server letsencrypt

et ca fonctionne !!!!!!!

Lien vers le commentaire
Partager sur d’autres sites

Il y a 11 heures, oracle7 a dit :

@romain1206

Bonjour,

La solution a été évoquée quelques post plus haut.

En fait il suffit de faire un simple ajout direct de la variable d'environnement :

DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'

dans le fichier account.conf.

Cordialement

oracle7😉

effectivement c'est plus simple

pour le script de renouvellement python ca fonctionne comment, ca utilise aussi ce fichier account.conf ?

Lien vers le commentaire
Partager sur d’autres sites

@romain1206

Bonjour,

Non le script de renouvellement n'utilise pas le fichier account.conf, c'est le script acme.sh qui le gère.

Désolé mais je vais pas ici te re décrire l'utilisation du script de renouvellement car tout est expliqué en long et en large dans le présent TUTO. Saches toutefois que ce script n'est valable que pour la version 6.x de DSM, IL N'EST PAS NECESSAIRE AVEC DSM7.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour à tous,

Je reviens ici pour avoir des nouvelles du passage sous DSM7, vis à vis du renouvellement automatique du certificat.
Le script fonctionne comme un charme chez moi sous DSM6 depuis environ un an. (sauf quelques "retards à l'allumage" du renouvellement de temps à autres, me forçant à le relancer manuellement).

J'envisageais de passer sous DSM7 mais ce renouvellement de certificat me retient encore de le faire.

j'attendais une MaJ de ce thread à ce sujet pour éventuellement me lancer.

En remontant dans les discussions assez ressentes, j'ai cru comprendre que le script python ne serait plus utile sous DSM7 et que pour ceux qui ont déjà appliqué tout ce tuto et ont un renouvellement fonctionnel sous DSM6 avec ce script , il suffisait de changer la ligne de commande dans le gestionnaire de tache pour couper le script et lancer le renouvellement sans.

@oracle7:Est-ce que finalement tu as eu le courage de valider ce changement vers DSM7? 

  Si oui, peux-tu confirmer que la MaJ vers DSM7 ne casse pas tout?

Je possède un DS215j et je ne peux donc pas appliquer la méthode Docker. Je n'ai pas non plus super envie de reprendre tout à zéro, si la MaJ vers DSM7 le nécessitait. Quand ça fonctionne pourquoi changer?... Mais si il le faut... 

Merci pour vos conseils!

NeBeLNiC

Lien vers le commentaire
Partager sur d’autres sites

@nebelnic

Bonjour,

il y a une heure, nebelnic a dit :

En remontant dans les discussions assez ressentes, j'ai cru comprendre que le script python ne serait plus utile sous DSM7 et que pour ceux qui ont déjà appliqué tout ce tuto et ont un renouvellement fonctionnel sous DSM6 avec ce script , il suffisait de changer la ligne de commande dans le gestionnaire de tache pour couper le script et lancer le renouvellement sans.

@oracle7:Est-ce que finalement tu as eu le courage de valider ce changement vers DSM7? 

  Si oui, peux-tu confirmer que la MaJ vers DSM7 ne casse pas tout?

  1. Je ne suis toujours pas passé sous DSM7 et donc je n'ai pu validé le changement. Comme expliqué précédemment dans le principe la méthode acme.sh est pour moi toujours valable mais sans le script python.
  2. Oui après MàJ vers DSM7 rien n'est cassé (je n'ai pas eu de retour dans ce sens de la part de ceux qui l'ont fait), donc a priori pas besoin de tout reprendre à zéro.
    Il n'y a finalement juste qu'à modifier la commande de la tâche programmée de renouvellement (dans le planificateur de tâches de DSM) pour remplacer le lancement du script python par ceci :

    bash /usr/local/share/acme.sh/acme.sh --cron --force --debug --home /usr/local/share/acme.sh/

    comme c'était d'ailleurs le cas dans la version originelle du TUTO.

  3. Ne pas oublier non plus de faire aussi un simple ajout direct de la variable d'environnement :

    DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'

    dans le fichier account.conf (/usr/local/share/acme.sh/account.conf).

Cordialement

oracle7😉

Modifié par oracle7
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.