Aller au contenu

[TUTO OBSOLÈTE] Certificat TLS/SSL - Let's Encrypt "Wildcard"


Messages recommandés

Posté(e)
Il y a 1 heure, InfoYANN a dit :

Juste à partir de là

hors contexte c'est inutilisable et comme la capture est une page blanche (censurée de partout), il n'y a rien à en tirer

Il y a 4 heures, Jojo (BE) a dit :

Pour info, je n'ai créé qu'un seul certif (et pas 2 comme toi) car d'après ceci il y aurait un problème de sécurité.

Ton lien recommande au contraire de créer un certificat "fictif" (utilisé pour les requêtes douteuses) et un certificat valide (utilisé pour le reste) mais même si l'idée n'est pas mauvaise, ça reste de la sécurité par l’obscurantisme => ça ne vaut rien face à une attaque, au mieux ça gênera un débutant (ou un scan générique), il le dit lui même, trouver des nom de domaine valide n'est pas un problème.

Il y a 3 heures, InfoYANN a dit :

Pour ma part, je ne constate pas d'informations spéciales sur mon certificat SSL via Firefox (par exemple). Et comme il est Wildcard, ça n'affiche pas non plus les autres domaines.

On y trouve au moins le nom de domaine de base (domaine.fr), il suffit ensuite de tester les noms DNS courant pour en trouver un qui marche ... (les autres champs comme le type de hash, les dates, l'autorité, ... sont aussi des informations qui peuvent servir).

Le 21/03/2018 à 21:08, Balooforever a dit :

Une question bête, on peut avoir confiance dans sslforfree ? 

Si à un moment ou à un autre la clef privée est entre leurs main => NON

Il y a 3 heures, Jojo (BE) a dit :

et voici la réponse :

la réponse est valide

Il y a 3 heures, Jojo (BE) a dit :

et comme @Fenrir avait dit qu'il fallait éviter les certificats auto-signés comme la peste

pour la plupart des gens c'est à fuir pour 2 raisons :

  1. ils prennent l'habitude d’accepter l'avertissement sans vérifier => le jour où en allant sur le site de leur banque il on une erreur de ce type, il vont passer outre !!!
  2. par défaut le navigateur enregistre cette exception => comme toute exception, un jour ou l'autre ça créera un problème

Maintenant un utilisateur averti qui utilise un certificat auto signé (ou mieux, signé par sa propre autorité) pour un usage strictement limité aux "sachant" (=>à des personnes qui ne tomberont pas dans les problèmes cités plus haut), ce n'est pas un problème

@InfoYANN : voici une base de départ pour ton besoin initial https://blog.blaisot.org/letsencrypt-wildcard-part2.html#generation-de-certificat-wildcard-avec-scripts-maison-dedition-de-zone

 

Posté(e)

Merci pour le lien que je vais aller voir. Je pense par contre qu'il est similaire à ce que j'ai fait avec acme en ssh et avec l'api d'OVH. A voir...

  • 3 semaines après...
Posté(e)

Bonjour,

Il me semble que le renouvellement du certificat se fera un peu tard.

Un certificat est valable 60 jours.

Le cron étant lancé à date fixe le renouvellement se fera de 60 à 62 jours (selon les mois).

Il y aura donc des périodes de 1 ou 2 jours avec certificat non valide.

 

Une solution possible : lancer le cron avec l’option –force pour un renouvellement mensuel?

Posté(e)

Non, 60 jours.

De plus 90 jours aggraverai le problème, il y aurai plus de retards de 2 jours

Posté(e)

@infoYANN: regardes tes propres copies d'écran du 4 avril : lors du certificat en 4096 on voit bien la date du prochain renouvellement.

Posté(e) (modifié)

Donc c'est pas dût à Let's Encrypt mais plutôt à Synolgoy cette histoire de 60 jours.

@PPJP j'irai voir les captures d'écran.

 

EDIT : je viens de regarder directement mon certificat et il est bien valable jusqu'à juillet alors que je l'ai fait début avril donc trois mois de validité.

Modifié par InfoYANN
Posté(e) (modifié)

Je pense que cela vient plutôt de acme. (ligne 43 du script)

 

Après réflexion je réalise que j'ai raconté des co...ies.

Le renouvellement se fera bien avec 1 ou 2 jours de retard par rapport à la limite des 60 jours.

Mais comme le certificat lui-même est valable 90 jours: aucun problème.

Tourner 7 fois sa langue dans sa bouche avant de se répandre dans un forum!!!

 

 

Modifié par PPJP
Posté(e) (modifié)

J'avais raté ta réponse @PPJP , désoler 😪

Bon après, il arrive à tout le monde de se tromper...

 

Sinon, bah j'ai encore deux semaines environ à attendre afin de voir si ça va fonctionner. J'espère car c'est franchement chiant si il faut chercher le pourquoi du comment puis tenter à nouveau tout en attendant à nouveau trois mois pour voir si ça fonctionne correctement 😅

Modifié par InfoYANN
  • 2 semaines après...
Posté(e) (modifié)

Bonjour à tous,

Alors j'ai quelques nouvelles mais elles ne sont pas bonnes... Je m'en étais pas aperçu jusqu'à hier soir mais acme avait sauté (complètement disparu) dans SSH certainement à cause de la MAJ de DSM 6.2 !

Du coup, pas de renouvellement du certificat wildcard...😡

Bref, j'ai refait la manipulation manuellement pour le renouvellement et j'ai un nouveau certificat Wildcard avec chiffrement de 4096 bits. Il faut donc de nouveau attendre fin septembre afin de voir si ça va fonctionner. J'attends aussi la prochaine MAJ DSM pour voir si acme saute à nouveau. Si ça saute toujours alors je pense que je resterai sur le service offert par "SSL FOR FREE" qui passe par l'API de Let's Encrypt et qui est recommandé justement par Let's Encrypt. Et au pire, je passerai manuellement par acme pour obtenir un chiffrement de 4096 bits. Après tout, ça n'est que deux ou trois lignes de commande et une importation de certificat ce qui me prend même pas 5 minutes tous les trimestres.

 

Modifié par InfoYANN
Posté(e)

Quelques observations , si tu le permets,

 

Si acme a sauté c’est que tu n’as pas utilisé un emplacement persistant

Le tuto sur github a été modifié fin juin pour cette raison(https://github.com/Neilpang/acme.sh/wiki/Synology-NAS-Guide).

 

Pour ma part cela fonctionne correctement.

Le renouvellement se fait par un script lancé par le cron tous les 89 jours (90-1 par sécurité)

 

Ce script est similaire à celui que tu lances par le gestionnaire de tâche à ceci près :

c’est lui qui lance le renouvellement par acme,

il copie les nouveaux certificats dans répertoire correspondant à CERDIR

la suite identique.

 

Si cela peut t’aider.

 

 

PS ; attention à la date du certificat affiché par DSM, les 90 jours semblent calculés à partir de la date de remplacement des certificats.

 

PS2 :si tu utilises l’option force pour le renouvellement tu n’est pas obligé d’attendre 60 jours pour vérifier le fonctionnement, il suffit de lancer le script manuellement

Posté(e)
il y a 6 minutes, PPJP a dit :

Quelques observations , si tu le permets,

Bien entendu que je permets 😋

Pour reprendre ce que tu dis et afin qu'on avance un peu et que je puisse refaire au propre le tuto, je vais te répondre et par la même occasion te poser une (ou plusieurs) question si tu veux bien.

Ok pour l'emplacement persistant. Je viens d'aller voir le Github et en effet, l'installation se fait maintenant dans "/usr/local/share/" alors que pour moi, acme.sh s'installait dans le dossier "root". Pas étonnant que ça ait sauté à la première grosse MAJ de DSM.

Je vais donc procéder à la désinstallation et recommencer l'opération afin qu'il soit au bon endroit 😉

Citation

Pour ma part cela fonctionne correctement.

Le renouvellement se fait par un script lancé par le cron tous les 89 jours (90-1 par sécurité)

Pourrais-tu nous fournir ton script stp afin qu'on l'ajoute dans le cron de nos NAS ?

Merci par avance.

Et merci pour tes précisions 😉

Posté(e)

C'est le même que le tien à quelques corrections près:

#!/bin/sh
# *******************************************
# Renouvellement périodique du certificat
# *******************************************

NDD="le_domaine_à_ renouveler.tld"
CERTDIR="69AbCd"
CERTRENEWDIR="/usr/local/share/acme.sh/$NDD"
CERTROOTDIR="/usr/syno/etc/certificate"
PACKAGECERTROOTDIR="/usr/local/etc/certificate"
FULLCERTDIR="$CERTROOTDIR/_archive/$CERTDIR"

# Renouvellement du certificat via acme.sh
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/  --force

# Importation des nouveaux certificats
cp $CERTRENEWDIR/$NDD.cer  $FULLCERTDIR/cert.pem
chmod 400 $FULLCERTDIR/cert.pem
cp $CERTRENEWDIR/ca.cer  $FULLCERTDIR/chain.pem
chmod 400 $FULLCERTDIR/chain.pem
cp $CERTRENEWDIR/fullchain.cer  $FULLCERTDIR/fullchain.pem
chmod 400 $FULLCERTDIR/fullchain.pem

# Recherche tous les sous-dossiers contenant cert.pem files
PEMFILES=$(find $CERTROOTDIR -name cert.pem)
if [ ! -z "$PEMFILES" ]; then
        for DIR in $PEMFILES; do
                # remplace tous les certificats, sauf ceux dans le répertoire _archive
                if [[ $DIR != *"/_archive/"* ]]; then
                        rsync -avh "$FULLCERTDIR/" "$(dirname $DIR)/"
                fi
        done
fi

# reload
/usr/syno/sbin/synoservicectl --reload nginx

# Maj et redémarrage de tous les paquets installés
PEMFILES=$(find $PACKAGECERTROOTDIR -name cert.pem)
if [ ! -z "$PEMFILES" ]; then
    for DIR in $PEMFILES; do
        rsync -avh "$FULLCERTDIR/" "$(dirname $DIR)/"
        /usr/syno/bin/synopkg restart $(echo $DIR | awk -F/ '{print $6}')
    done
fi

Bien sur les deux premières lignes à adapter selon ton domaine.

Attention cependant le renouvellement est fait à chaque lancement du script (utilisation de l'option force pour acme.sh).

Cela car je ne le lance que tous les 89 jours, mais cela me permet de lancer un renouvellement manuel si besoin)

Autre précision, cela ne permet que de gérer un seul certificat, car il se retrouve affecté comme certificat par défaut et appliqué à tous les paquets et reverse proxy)

 

Posté(e) (modifié)

Ok, merci pour tes précisions. Pourquoi forcer la MAJ ? Tu ne peux pas simplement faire une tâche planifiée ? Si je dis pas de bêtises, le faite de forcer ne remplacera pas le précédent certificat chez Let's Encrypt mais en créera un nouveau et ensuite, les serveurs de Let's Encrypt attendront que le précédent soit expiré.

Si tu le souhaites, tu peux aussi ajouter à ton code ceci afin d'augmenter le chiffrement du certificat :

--keylength 4096

 

Je verrais tout ça dans le week-end mais j'ai déjà réinstallé acme.sh dans le bon dossier.

Modifié par InfoYANN
Posté(e)

Ce qui est forcé, c'est le renouvellement; cela ne crée pas de nouveau certificat.

Ceci au cas improbable ou j'aurais besoin de faire un renouvellement ponctuel (par exemple pour vérifier que cela fonctionne sans attendre un délai de 60 ou 90 jours)

Et cela n'a pas de conséquences négative car je ne lance ce script que tous les 89 jours.

Pour tout te dire je suis assez allergique au bash que je trouve assez imbuvable et que j'utilise à dose homéopathique.

En fait le script que je t'ai transmis est lancé par un script python (lancé par le cron) et qui corrige le dit cron pour se relancer 89 jours plus tard.

Posté(e)

Je n'avais pas remarqué la dernière ligne de ta signature.

Pour ma part j'habite vraiment  à l’extrémité de mon pays et je crois que l'espoir ne me fera pas vivre assez longtemps pour découvrir les bienfaits de la fibre.

On ne peut pas tout avoir!

Posté(e)

Ah faut pas dire ça, on nous promet la fibre à tous d'ici 5 ans je crois 🤣

*******

Citation

Et cela n'a pas de conséquences négative car je ne lance ce script que tous les 89 jours.

Il se lance automatiquement au bout de 89 jours ? Les 89 jours sont compté à partir du jour de la création, c'est bien ça ?!

Citation

Pour tout te dire je suis assez allergique au bash que je trouve assez imbuvable et que j'utilise à dose homéopathique.

En fait le script que je t'ai transmis est lancé par un script python (lancé par le cron) et qui corrige le dit cron pour se relancer 89 jours plus tard.

Que veux tu dire stp ? En faite, tu as fait quoi ?

Une ligne dans CRON du type :

vim /etc/crontab
0    10    2    *    *    root    usr/local/share/.acme.sh/ndd.tld --cron --home usr/local/share/.acme.sh/

et

tu as mit le script dans une tâche planifiée avec les 89 jours pour l’exécution ?

 

Merci pour ton retour.

 

Posté(e) (modifié)

Bonsoir,

je vais essayer d’être clair.

 

Donc pour l’instant 3 scripts

acme.sh

certificatupdate.sh (celui que je t’ai transmis)

majcertificat.py (le script python)

(Quand j’aurais un peu de temps je fusionnerai ces deux derniers)

 

Le principe :

Le cron lance majcertificat.py

 

majcertificat.py

1- lance certificatupdate.sh

 

     certificatupdate.sh

          1 - lance acme.sh (renouvellement du certificat)

     2 - importe les nouveaux certificats créés (dont ceux pour paquets et reverse proxy)

 

2 - corrige la crontab pour prochain lancement dans 89 jours.

(si la ligne à corriger n’est pas trouvée une nouvelle ligne est créée)

 

pour info ma ligne du cron ressemble à ;

1 1 4 10 * root /usr/local/bin/python3 /volume1/script/gandi/majcertificat.py> /volume1/script/gandi/majcertificat.log 2>&1

 

Tu peux lancer le premier renouvellement en SSH avec cette même commande

Ou créer une tache planifiée (non activée), toujours avec cette même commande, et la lancer par exécuter

Modifié par PPJP
Posté(e)

Merci d'avoir répondu. Je commence à m'y perdre avec tous ces scripts 😄

Donc là pour combler ta méthode, il manque le majcertificat.py, c'est bien ça ? Ne peux-tu passer te passe de majcertificat.py ?!

Posté(e)

Je veux bien te l'envoyer mais c"est du python3.

Si tu veux l'utiliser il te faudra installer le paquet correspondant.

De plus ce script se sert d'un autre module spécifique à la gestion du cron (module séparé car utilisé par d'autre scripts chez moi).

Il faudrait que je t'envoie aussi ce module(peut-être après l'avoir allégé non utilisé dans ce cas )

Es-tu intéressé?

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.