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 :
- 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. · Issue #10598 · pyca/cryptography · GitHub
- python - conda when running give RuntimeError: OpenSSL 3.0's legacy provider failed to load - Stack Overflow
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