Liaison statique d'OpenSSL dans sgcWebSockets : fini les DLL libcrypto et libssl | Blog eSeGeCe

Liaison statique d'OpenSSL dans sgcWebSockets : fini les DLL libcrypto et libssl

· Composants

Déployer TLS avec sgcWebSockets sous Windows a toujours signifié livrer libcrypto et libssl à côté de votre exécutable, en veillant à faire correspondre la bonne version d'OpenSSL et la bonne architecture. sgcWebSockets peut désormais lier OpenSSL directement dans l'exécutable, si bien qu'il n'y a plus aucune DLL à déployer, aucune version à faire correspondre, et aucun dossier où les conserver. Cette fonctionnalité est disponible dans les éditions Enterprise et All-Access.

Une seule unité, rien d'autre à configurer

Il n'y a aucune directive de compilation à activer et aucune version d'API OpenSSL à choisir. Ajoutez l'unité sgcIdSSLOpenSSL_Static à la clause uses de votre projet, et dès la prochaine exécution votre application utilise la bibliothèque OpenSSL liée dans le .exe, aussi bien pour les composants client que serveur.

uses
  sgcWebSocket, sgcWebSocket_Classes,
  sgcIdSSLOpenSSL_Static;

Retirez l'unité de la clause uses et votre application revient au chargement des DLL OpenSSL exactement comme avant. Il n'y a rien d'autre à changer dans votre code, vos paramètres TLS, vos certificats et votre logique de connexion restent identiques dans les deux cas.

Fonctionne dans les clients et les serveurs, en Win32 et en Win64

La liaison statique s'applique aussi bien à TsgcWebSocketClient qu'à TsgcWebSocketServer, ainsi qu'à tout autre composant sgcWebSockets ou sgcIndy qui passe par TLS, en version 32 bits comme en version 64 bits. Un serveur qui termine des connexions TLS pour des centaines de connexions et un client qui se connecte à un seul point de terminaison bénéficient tous deux de l'OpenSSL lié de la même manière, simplement en ayant l'unité dans le projet.

OpenSSL 3.5.7, maintenu à jour

La version d'OpenSSL actuellement liée est la 3.5.7. Au fur et à mesure que de nouvelles versions d'OpenSSL sortent, elle est rafraîchie dans les prochaines mises à jour de sgcWebSockets, vous n'avez donc pas besoin de suivre, télécharger ou redéployer vous-même les binaires OpenSSL, une simple mise à jour du composant suffit.

Prérequis

Si vous compilez avec une version de Delphi antérieure à XE2 tout en référençant l'unité en espérant qu'elle se lie, vous obtiendrez E2045 Bad object file format. La solution consiste simplement à retirer sgcIdSSLOpenSSL_Static de la clause uses, votre application continuera de fonctionner avec les DLL OpenSSL.

Quand cela est utile

La liaison statique est utile lorsque vous souhaitez livrer un seul fichier, lorsque vous ne pouvez pas garantir que la machine cible dispose déjà 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, par exemple un répertoire d'installation verrouillé ou un outil distribué sous forme d'un seul binaire.

Disponibilité

La liaison statique d'OpenSSL est livrée dans les éditions Enterprise et All-Access de sgcWebSockets. Pour une vue d'ensemble des backends TLS pris en charge par sgcWebSockets sur chaque plateforme, consultez la section SSL / TLS et la page backend TLS OpenSSL.

Téléchargez-le depuis la page de téléchargement de sgcWebSockets, ou récupérez-le via GetIt ou votre compte enregistré.

Des questions, des retours ou besoin d'aide pour planifier un déploiement sans DLL ? Contactez-nous, vous obtiendrez une réponse des personnes qui ont écrit le code.