Erreur OpenSSL lors du renouvellement de mon certificat HTTPS

assez d’accord, si c’est pas full supported pour le moment, je vais peut etre m’abstenir de faire un update de debian 11 vers 12 en cmdlet. Même si a priori c’est plutôt simple, vu qu’il s’agit de mon jeedom de prod :slight_smile:

on va bien finir par trouver une solution :crossed_fingers:

Il n’est plus supporté depuis un moment. maintenant il faut prendre le plugin z-wave js :wink:

oups, lapsus calami, c’est bien de zwave-js que je voulais parler…

Question vous savez ou on trouve la variable d’environnement CRYPTOGRAPHY_OPENSSL_NO_LEGACY ?
L’idée ce serait de faire le renew du certificat puis de repasser la variable par défaut
Sinon il y avait pas une page de configuration pour l’OpenSSL à un moment ?

J’ai essayé de faire ça et ça n’a rien donné.

Mais comme je n’y connais rien, voici TFU la procédure que j’ai suivie, il est probable que je sois totalement à côté : https://www.it-connect.fr/definir-des-variables-denvironnement-sous-linux/ (spécifiquement, le passage "créer une variable d’environnement persistante pour tous les utilisateurs) en mettant dans le fichier nouvellement créé : « export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 »

bon bah j’ai gagné … plus d’interface jeedom :cry: Suis bon pour une réinstall totale … a moins que quelqu’un ai une idée …

euh, j’espère que ce n’est pas mon message qui t’a planté ton install ! chez moi ça n’a juste rien fait, j’ai eu la même erreur immédiatement…

nan mais les updates de python il a pas du kiffer … du coup bah install fresh … mais #flem !!
Surtout le autoremove … bref j’ai pas été malin sur le coup … conclusion je perds du temps … Ce sera l’occasion de test AlexaPremium sur debian12 :slight_smile: histoire de génération de cookie

Oulah, j’ose pas tenter trop de choses du coup, ma conf à planter il y a deux semaines pour crash de la SD…

Bon courage en tout cas.

Alors après mes aventures … le certificat refonctionne en debian12. J’ai pu le renew :slight_smile: donc tranquille jusqu’en Fevrier ^^
D’apres ce que j’ai pu voir, c’est une histoire de version mais aucune idée de laquelle… si vous avez besoin que je check dites moi avec la bonne commande.

Maintenant faut que jme frotte à DeconZ qui fait des siennes …

Je ne sais pas quoi te dire de plus pas assez calé dans le domaine.

Quelqu’un peut-il m’aider pour résoudre le problème ?

Il y a 15 jours je n’avais volontairement pas installé Debian 12 car j’avais vu qu’il n’était pas encore compatible Jeedom.

Ce qui m’étonne c’est que malgré une mise à jour des dépôts via la ligne « apt list --upgradable » quand je test avec « sudo apt update » j’ai toujours 7 paquets à mettre à jour

7 packages can be upgraded. Run ‹ apt list --upgradable › to see them.

Peut-être rien à voir, mais le tuto que j’ai trouvé sur https://www.domo-blog.fr/securiser-access-jeedom-https-certificat-ssl-letsencrypt-raspberrypi/3/ disait de les mettre à jour.

Flo

Tu as raison ça doit être un problème de version quelque part.
Ta version de openssl c’est quoi du coup ?
commande : openssl version

je suis en version :

Merci je dirais que c’est lui qu’il faut mettre à jour mais pour cela il faut passer en debian 12.
J’ai essayé de le mettre à jour comme ça et j’ai planté mon système( je le savais avant de le faire).

Si un « expert » peut confirmer qu’il n’y a pas d’autres possibilités
.

Bonsoir à tous,

Je suis preneur d’une aide d’expert également.
De mon côté, je suis avec la version OpenSSL suivante : OpenSSL 1.1.1w 11 Sep 2023

Merci.

Bonjour,

Voici quelques unes de mes élucubrations autour de ce sujet crypto complexe :

  • Concernant openssl :
    Lorsque Mickey était en Debian 11, je lui ai demandé
    openssl version
    il a répondu
    OpenSSL 1.1.1w
    Mickey est passé en Debian 12
    et jeremy lui a demandé
    openssl version
    il a répondu
    OpenSSL 3.0.15

Il y a des différences importantes entre les branches OpenSSL 1.1.1 et 3.0.
avec OpenSSL3 certains anciens algorithmes de chiffrement ont été supprimés par défaut.
Pour avoir un comportement de openssl V3 équivalent à openssl V1, dans certaines commandes de openssl (V3) il est utilisé des options telles que -legacy ou -traditional pour activer openssl V3 en mode « Legacy »(aka openssl V1).

  • Concernant Cerbot :
    cerbot s’appuie sur python qui s’appuie sur le paquet cryptography qui s’appuie sur OpenSSL.
    Il y a plusieurs méthodes pour installer Cerbot sur Debian/Apache et il ne va pas en résulter le même comportement.
    et il est vivement conseillé de ne pas combiner les méthodes.
    (source https://certbot.eff.org) :
    si on résume et simplifie :

  • méthode apt :
    $ sudo apt install certbot python3-certbot-apache
    (utilise probablement python/cryptography/openssl de l’installation Debian « principal »)

  • méthode snap :
    $ sudo apt install snapd
    $ sudo snap install --classic certbot
    $ sudo ln -s /snap/bin/certbot /usr/bin/certbot
    $ sudo certbot certonly --apache
    $ sudo certbot renew --dry-run
    $ sudo snap refresh certbot (pour mettre à jour le paquet snap certbot)

  • méthode pip (et python venv) :
    $ sudo apt install python3 python3-venv libaugeas0
    $ sudo python3 -m venv /opt/certbot/
    $ sudo /opt/certbot/bin/pip install --upgrade pip
    $ sudo /opt/certbot/bin/pip install certbot certbot-apache

Avec snap : python, cryptography et openssl peuvent être dans des versions différentes que pour le Debian « principal ».
Avec pip (et python venv) : python et cryptography peuvent être dans des versions différentes que pour le Debian « principal ».

Tout ça pour dire qu’avec Debian12 et certbot via snap, on est dans tous les cas sur OpenSSL3 et a priori ça va bien se passer.
Pour Debian11 et certbot via snap, il y a l’air d’y avoir depuis recemment un sac de noeuds lié à cryptography v43 et openssl V1 (Legacy) versus openssl V3.

Pour mémoire l’erreur c’est (cf. post de Mickey) :

« from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions
RuntimeError: OpenSSL 3.0’s legacy provider failed to load. This is a fatal error by default,
but cryptography supports running without legacy algorithms by setting the environment variable CRYPTOGRAPHY_OPENSSL_NO_LEGACY.
If you did not expect this error, you have likely made a mistake with your OpenSSL configuration. »

Voir erreur similaire :

La solution sous Debian11 devrait tourner autour de quelque chose comme (à affiner) :
(experimental, attention aux effets de bord)

Commandes (ssh en root) :

export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

et la réinstallation du paquet python cryptography.

Pour voir les variables d’environnement, commande :

export

ou bien mettre à jour cerbot via snap (si déjà installé via snap).

akenad :slight_smile:

1 « J'aime »

Bonjour

Au vu du post j’ai fait un essai de renew du certificat.
Je suis en Debian 11 et cerbot en snap sous Proxmox.

root@jeedom:~# sudo certbot renew --cert-name mondomaine.fr
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/mondomaine.fr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/snap/certbot/4182/lib/python3.12/site-packages/certbot/ocsp.py:238: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to this_update_utc.
  if not response_ocsp.this_update:
/snap/certbot/4182/lib/python3.12/site-packages/certbot/ocsp.py:240: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to this_update_utc.
  if response_ocsp.this_update > now + timedelta(minutes=5):
/snap/certbot/4182/lib/python3.12/site-packages/certbot/ocsp.py:242: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to next_update_utc.
  if response_ocsp.next_update and response_ocsp.next_update < now - timedelta(minutes=5):
Certificate not yet due for renewal

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificates are not due for renewal yet:
  /etc/letsencrypt/live/mondomaine.fr/fullchain.pem expires on 2024-12-14 (skipped)
No renewals were attempted.

J’ai changé le nom de mon domaine par « mondomaine.fr » pour publier.

J’étudie une solution de contournement en utilisant une VM (Proxmox) avec un reverse proxy « Nginx Proxy Manager » gérant les certificats. L’accès à Jeedom fonctionne en redirigeant le flux en http port 80 sur le serveur jeedom, il me reste à tester Jeedom Connect.

Malheureusement cette solution est difficilement réalisable sur des machines dédiées à Jeedom comme un RPI.

Cordialement

Ca fonctionne !
J’étais persuadé d’avoir essayé ça mais je le trouve pas dans mon historique de commande quel temps perdu :unamused:

Pour info je suis tjrs en debian 10.

Merci à toi.

1 « J'aime »

bonjour quelle méthode as tu utilisé pour parvenir au renouvellement .Je précise que je n’y comprend pas grand chose et que je suis parvenu a faire fonctionner mon jeedom à coups de tutos .Merci bonne journée .

1 « J'aime »

Bonjour,
Je suis sur RPI3B avec debian 10, OpenSSL 1.1.1n 15 Mar 2022, cryptography 2.6.1.
Mon alerte vient de la commande certbot certificates qui donne actuellement une erreur de runtime d’openssl 3.0, mais je pense qu’on partage la même problématique. Je redoute un pb plus urgent et critique au renouvellement.
Tu as résolu semble-t-il en restant sur debian 10 : Peux-tu nous faire une synthèse.
Merci.