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
- Windows uniquement, en 32 bits et en 64 bits. Ce n'est pas disponible sur macOS, Android ou iOS, et cela ne fait pas partie de l'édition .NET.
- Delphi XE2 ou version ultérieure. Les versions plus anciennes de Delphi ne peuvent pas lier un fichier objet dans ce format, donc sur ces versions l'unité se compile en un no-op et votre application continue de charger les DLL OpenSSL comme d'habitude, sans aucune modification de code nécessaire.
- Disponible uniquement dans les éditions Enterprise et All-Access de sgcWebSockets, et uniquement lorsque la bibliothèque Indy personnalisée est utilisée, ce qui est le comportement par défaut dans ces éditions.
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.
