Ssleay32.dll est une bibliothèque d'OpenSSL, le projet libre qui chiffre les connexions SSL/TLS. Quand un programme la signale introuvable, la bonne réponse est presque toujours de réinstaller ou de mettre à jour ce programme, pas de chercher le fichier seul.
Une bibliothèque de chiffrement
Ssleay32.dll appartient à OpenSSL, la bibliothèque libre qui gère les connexions chiffrées SSL/TLS. Des programmes l'embarquent pour communiquer en sécurité avec un serveur.
Sous Windows, les anciennes versions d'OpenSSL se présentaient sous la forme de deux fichiers qui travaillaient ensemble : ssleay32.dll, pour le protocole de communication sécurisée, et libeay32.dll, pour les fonctions cryptographiques. Les branches plus récentes d'OpenSSL ont renommé ces bibliothèques en libssl et libcrypto. Un programme qui réclame encore ssleay32.dll s'appuie donc sur une ancienne génération du projet.
Pourquoi l'erreur
Le programme ne trouve pas la bibliothèque dans son dossier, ou trouve une version incompatible installée par un autre logiciel.
Windows cherche une DLL d'abord dans le dossier du programme, puis dans les dossiers du système et ceux indiqués dans la variable d'environnement des chemins. Si un autre logiciel a déposé sa propre version d'OpenSSL dans un dossier commun, le programme peut charger cette version au lieu de la sienne et échouer. Ce conflit explique des erreurs qui surviennent après l'installation d'un logiciel sans rapport apparent.
La bonne solution
Réinstaller le programme qui affiche l'erreur : c'est lui qui fournit la version d'OpenSSL avec laquelle il a été conçu. Mélanger les versions provoque des erreurs difficiles à diagnostiquer.
Le message d'erreur indique souvent le nom du programme concerné, ou apparaît au lancement d'un logiciel précis. Après réinstallation, si le problème persiste, une copie de ssleay32.dll placée par erreur dans le dossier système de Windows peut être en cause : la retirer, avec prudence et après sauvegarde, permet au programme de retrouver sa propre version.
Pour les développeurs
Ceux qui compilent ou déploient une application avec OpenSSL doivent livrer les bibliothèques à côté de leur exécutable, dans la version testée, plutôt que de compter sur leur présence dans le système. C'est aussi l'occasion de migrer vers une branche maintenue, dont les noms de fichiers ont changé. Des erreurs voisines touchent d'autres composants de chiffrement, comme l'extension php-openssl.dll pour PHP, ou crypt32.dll, la bibliothèque de chiffrement propre à Windows.
La sécurité
Les anciennes versions d'OpenSSL ont connu des failles graves : un logiciel qui en dépend encore doit être mis à jour, et une bibliothèque de chiffrement ne se récupère jamais sur un site non officiel.
La plus célèbre de ces failles, baptisée Heartbleed, permettait à un attaquant de lire une partie de la mémoire d'un serveur, y compris des mots de passe ou des clés de chiffrement. Elle a marqué les esprits et accéléré la maintenance du projet. Une bibliothèque de chiffrement modifiée par un tiers pourrait intercepter des données sensibles sans que l'utilisateur s'en aperçoive : c'est l'exemple même du fichier qui ne doit provenir que de l'éditeur du logiciel ou du projet officiel.
Si le logiciel n'est plus maintenu
Un programme abandonné par son éditeur, qui embarque une ancienne version d'OpenSSL, expose ses communications à des failles connues. Mieux vaut chercher une alternative maintenue, surtout s'il échange des données personnelles ou des identifiants sur Internet. Pour un usage ponctuel et hors ligne, le risque est moindre, mais la mise à jour reste la règle.
















