OpenSSL | Liaison statique

OpenSSL peut être lié directement à l'intérieur de l'exécutable de votre application, au lieu d'être chargé au moment de l'exécution depuis les fichiers DLL libcrypto et libssl. Cela signifie qu'une application utilisant TLS n'a besoin de déployer aucune DLL OpenSSL : tout ce dont elle a besoin se trouve déjà dans le fichier .exe.

Ceci est utile lorsque vous souhaitez distribuer un seul fichier, lorsque vous ne pouvez pas garantir que la machine cible dispose de la bonne DLL OpenSSL, ou lorsque votre processus de déploiement n'autorise pas de fichiers supplémentaires à côté de l'exécutable.

Prérequis

Comment configurer

Il n'y a rien à configurer. Ajoutez simplement l'unité sgcIdSSLOpenSSL_Static à la clause uses de votre projet, par exemple dans le fichier .dpr principal :

uses

sgcIdSSLOpenSSL_Static;

C'est tout. Il n'y a aucune directive de compilation à activer ni de version d'API OpenSSL à choisir : votre application commence à utiliser la bibliothèque OpenSSL liée dans l'exécutable dès son prochain démarrage, aussi bien pour les composants client que serveur. Si vous retirez l'unité de la clause uses, votre application revient à charger les DLL OpenSSL exactement comme avant.

La version d'OpenSSL actuellement liée est la 3.5.7. Cette version est mise à jour de temps à autre afin d'inclure les derniers correctifs OpenSSL, vous n'avez donc pas besoin de suivre ni de déployer vous-même les versions d'OpenSSL.

Erreurs courantes

E2045 Bad object file format

Cela signifie que vous compilez avec une version de Delphi antérieure à XE2. La liaison statique nécessite Delphi XE2 ou plus récent ; retirez l'unité sgcIdSSLOpenSSL_Static de la clause uses et votre application continuera de fonctionner avec les DLL OpenSSL.