Aller au contenu

Comment dépasser la limite de 256 car pour la liste des domaines d'un certificat Let'sEncrypt


Messages recommandés

Bonjour à tous,

Il se trouve que j'ai besoin d'ajouter de nouveaux domaines à ma liste de domaines gérées par mon certificat Let'Encrypt.

Mais cela m'est impossible car alors je dépasse la limite fatidique des 256 caractères.

Comment passer outre cette limitation ?

Merci de vos réponses avisées.

Cordialement

oracle7 😉

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

Le certificat LE accepte jusqu'à 100 SAN, mais le Syno limite puisqu'il ne permet pas plus de 256 caractères.

Dans ce cas, il suffit de créer plusieurs certificats. J"en ai 3 sur mon ndd, non pas que j'arrive à saturation, mais pour séparer différents services.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Bon et bien finalement en fouillant un peu, j'ai réussi à créer mon certificat wildcard Let'sEncrypt.

Je vous livre ci-après la procédure que j'ai suivie (c'est un mixte de différents tutos trouvés sur la toile) :

1 - Installation de acme.sh

Ouvrir une session SSH sur le NAS (j'ai utilisé pour cela WinSCP)

$ wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
$ tar xvf master.tar.gz
$ cd acme.sh-master/
$ ./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmailcom"

Nota : c'est la seule solution d'installation qui à marché dans mon cas.

Vérifier si besoin les droits d'exécution de "acme.sh" :

chmod a+x acme.sh

2 - Délivrer le certificat

./acme.sh --issue -d mondomaine.tld -d *.mondomaine.tld --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

On obtient un message du genre :

[Fri Mar 27 19:04:05 CET 2020] Single domain='*.mondomaine.tld'
[Fri Mar 27 19:04:05 CET 2020] Getting domain auth token for each domain
[Fri Mar 27 19:04:07 CET 2020] Getting webroot for domain='*.mondomaine.tld'
[Fri Mar 27 19:04:07 CET 2020] Add the following TXT record:
[Fri Mar 27 19:04:07 CET 2020] Domain: '_acme-challenge.mondomaine.tld'
[Fri Mar 27 19:04:07 CET 2020] TXT value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
[Fri Mar 27 19:04:07 CET 2020] Please be aware that you prepend _acme-challenge. before your domain
[Fri Mar 27 19:04:07 CET 2020] so the resulting subdomain will be: _acme-challenge.mondomaine.tld
[Fri Mar 27 19:04:07 CET 2020] Please add the TXT records to the domains, and re-run with --renew.
[Fri Mar 27 19:04:07 CET 2020] Please add '--debug' or '--log' to check more details.
[Fri Mar 27 19:04:07 CET 2020] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

Se rendre ensuite sur le compte OVH dans la 'Zone DNS' du domaine 'mondomaine.tld' et on y ajoute une entrée TXT avec les informations issues du précédent message, telle que :

_acme-challenge.mondomaine.tld     60     TXT    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Patienter quelques minutes le temps que les enregistrements DNS soient mis à jour par OVH.

3 - Configuration DNS

Aller sur https://eu.api.ovh.com/createApp/

Saisir son identifiant et mot de passe client OVH

Saisir pour "Application Name" (par ex) : Synology (en fait je ne savais pas quoi mettre alors ....)

Saisir pour "Application Description" (par ex) : Certificat NAS (idem)

Enfin cliquer sur "Create Keys"

Noter les clés affichées dans le message de retour.

4 - Retour dans la session SHH

Saisir :

export OVH_AK="Application key"
export OVH_AS="Application secret"

5 - Mettre à jour le certificat délivré précédemment

./acme.sh --issue -d mondomaine.tld -d *.mondomaine.tld --dns dns_ovh --force

Nota : SI on met seulement '--renew' on récupère un message d'erreur qui nous dit qu'il faut appliquer '--force' alors autant le faire directement.

et en retour dnc, on a un message du genre :

[Fri Mar 27 20:34:58 CET 2020] Single domain='*.mondomaine.tld'
[Fri Mar 27 20:34:58 CET 2020] Getting domain auth token for each domain
[Fri Mar 27 20:35:00 CET 2020] Getting webroot for domain='*.mondomaine.tld'
[Fri Mar 27 20:35:01 CET 2020] *.mondomaine.tld is already verified, skip dns-01.
[Fri Mar 27 20:35:01 CET 2020] Verify finished, start to sign.
[Fri Mar 27 20:35:01 CET 2020] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxxxxxxxxxx/xxxxxxxxxx
[Fri Mar 27 20:35:02 CET 2020] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[Fri Mar 27 20:35:03 CET 2020] Cert success.
-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

etc ...
-----END CERTIFICATE-----
[Fri Mar 27 20:35:03 CET 2020] Your cert is in  /root/.acme.sh/*.mondomaine.tld/*.mondomaine.tld.cer
[Fri Mar 27 20:35:03 CET 2020] Your cert key is in  /root/.acme.sh/*.mondomaine.tld/*.mondomaine.tld.key
[Fri Mar 27 20:35:03 CET 2020] The intermediate CA cert is in  /root/.acme.sh/*.mondomaine.tld/ca.cer
[Fri Mar 27 20:35:03 CET 2020] And the full chain certs is there:  /root/.acme.sh/*.mondomaine.tld/fullchain.cer

6 - Recopie des fichiers générés sur le PC

Via WinSCP (ou tout autre moyen) :

  1. Sélectionner le fichier sur le NAS : /root/.acme.sh/*.mondomaine.tld/*.mondomaine.tld.key et le recopier dans un répertoire sur le PC : il devient %2A.mondomaine.tld.key
  2. Sélectionnerle fichier sur le NAS : /root/.acme.sh/*.mondomaine.tld/*.mondomaine.tld.cer et le recopier dans un répertoire sur le PC : il devient %2A.mondomaine.tld.cer
  3. Sélectionnerle fichier sur le NAS : /root/.acme.sh/*.mondomaine.tld/ca.cer et le recopier dans un répertoire sur le PC

Nota : le caractère '*' n'est pas accepté dans un nom de fichier sur WINDOWS, c'est pour cela qu'on le remplace par son équivalent : '%2A'.

7 - Importer le nouveau certificat dans DSM

  1. Ajouter un certificat
  2. Importer un certificat
  3. Sélectionner sur le PC le fichier : %2A.mondomaine.tld.key
  4. Sélectionner sur le PC le fichier : %2A.mondomaine.tld.cer
  5. Sélectionner sur le PC le fichier : ca.cer
  6. Valider en cliquant sur OK

Rendre ensuite, si besoin, ce certificat valide par Défaut.

image.jpeg.3b60be762dd47b55cbe776adfabc7d11.jpeg

Voilà, cela vaut ce que cela vaut, mais si çà peut aider ...

Cordialement

oracle7 😉

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

La validation par DNS a l'avantage de ne pas avoir besoin d'ouvrir de port pour créer et renouveler les certificats.

Il y a des scripts qui vont jusqu'à automatiser l'installation du certificat dans DSM, mais ça ne me semble pas être une solution pérenne (surtout avec DSM 7). Le mieux est de faire ce que tu as fait : générer le certificat et l'ajouter manuellement.

Je n'ai pas utilisé l'API OVH pour le renouvellement automatique car j'utilise mes propres serveurs DNS.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Einsteinium

Face à cette belle assertion, qu'à cela ne tienne : voici la commande (du §5 de ma procédure) à exécuter pour forcer la clé RSA en 4096bits (pour mémoire le chiffrement RSA est un algorithme de cryptographie asymétrique) :

./acme.sh --issue -d *.mondomaine.tld --dns dns_ovh --keylength 4096 --force

Maintenant on peut aussi poussez plus loin les choses en adoptant un chiffrement basé sur une clé ECDSA s'appuyant sur les courbes elliptiques. Malgré une faible longueur, ces clés sont très robustes et peut-être bien plus sécures que les clés RSA sachant que ces dernières sont déjà bien suffisantes pour nos besoins.

Pour comparaison, une clé ECDSA 256 bit est équivalente à une clé RSA 3072 bit, et une clé ECDSA 384 bit est équivalente à une clé RSA 7680 bit !

Let'sEncrypt reconnait les courbes elliptiques P-256 et P-384 mais le P-521 n'est pas encore reconnu.

Dans ce dernier cas donc, la commande à utiliser serait :

./acme.sh --issue -d *.mondomaine.tld --dns dns_ovh --keylength ec-384 --force

Cordialement

oracle7 😉

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

  • 2 mois après...

J’avais pas vue ta réponse 🙄

Fin limier que tu sembles, au lieu de faire des clés qui donne un accès total à ton compte ovh... on créer un token limité en droit (sur le domaine), en action (sur le domaine là aussi) et en ip pour la sécurité 😉

https://api.ovh.com/createToken/

la base.

Ps : le export... non dans un fichier qu’on appel via credentials...

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.