Erreur OpenSSL lors du renouvellement de mon certificat HTTPS

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 »