sgcWebSockets içinde Statik OpenSSL Bağlama: Artık libcrypto ve libssl DLL Yok | eSeGeCe Blog

sgcWebSockets içinde Statik OpenSSL Bağlama: Artık libcrypto ve libssl DLL Yok

· Bileşenler

Windows üzerinde sgcWebSockets ile TLS kullanmak, şimdiye kadar her zaman libcrypto ve libssl dosyalarının çalıştırılabilirinizin yanında, doğru OpenSSL sürümü ve bit genişliğiyle eşleşecek şekilde dağıtılmasını gerektirdi. sgcWebSockets artık OpenSSL'i doğrudan çalıştırılabilirin içine bağlayabiliyor, böylece dağıtılacak bir DLL, eşleştirilecek bir sürüm veya bunları tutacak bir klasör kalmıyor. Bu özellik Enterprise ve All-Access sürümlerinde mevcuttur.

Tek unit, başka hiçbir yapılandırma yok

Etkinleştirilecek bir derleyici direktifi veya seçilecek bir OpenSSL API sürümü yoktur. Projenizin uses bölümüne sgcIdSSLOpenSSL_Static unit'ini ekleyin; bir sonraki çalıştırmadan itibaren uygulamanız, hem istemci hem de sunucu bileşenleri için .exe içine bağlanmış OpenSSL kitaplığını kullanır.

uses
  sgcWebSocket, sgcWebSocket_Classes,
  sgcIdSSLOpenSSL_Static;

Unit'i uses bölümünden kaldırdığınızda uygulamanız eskisi gibi OpenSSL DLL'lerini yüklemeye geri döner. Kodunuzda, TLS ayarlarınızda, sertifikalarınızda ve bağlantı mantığınızda başka hiçbir değişiklik yapmanız gerekmez, her iki durumda da aynı kalır.

İstemcilerde ve sunucularda, Win32 ve Win64'te çalışır

Statik bağlama, TsgcWebSocketClient ve TsgcWebSocketServer için olduğu kadar, TLS üzerinden çalışan diğer tüm sgcWebSockets veya sgcIndy bileşenleri için de, hem 32 bit hem de 64 bit derlemelerde eşit şekilde geçerlidir. Yüzlerce bağlantı için TLS sonlandıran bir sunucu ile tek bir uç noktaya bağlanan bir istemci, projede yalnızca bu unit bulunduğu sürece, bağlanmış OpenSSL'i aynı şekilde kullanır.

OpenSSL 3.5.7, güncel tutuluyor

Şu anda bağlanan OpenSSL sürümü 3.5.7'dir. Yeni OpenSSL sürümleri çıktıkça, bu sürüm gelecekteki sgcWebSockets güncellemelerinde yenilenir, böylece OpenSSL ikili dosyalarını kendiniz takip etmeniz, indirmeniz veya yeniden dağıtmanız gerekmez, normal bir bileşen güncellemesi yeterlidir.

Gereksinimler

XE2'den eski bir Delphi sürümüyle derleme yapıp yine de unit'in bağlanmasını bekliyorsanız E2045 Bad object file format hatasını görürsünüz. Çözüm, sgcIdSSLOpenSSL_Static unit'ini uses bölümünden kaldırmaktır; uygulamanız OpenSSL DLL'leriyle çalışmaya devam eder.

Bu ne zaman işe yarar

Statik bağlama, tek bir dosya olarak dağıtım yapmak istediğinizde, hedef makinede doğru OpenSSL DLL'inin kurulu olacağından emin olamadığınızda veya dağıtım sürecinizin çalıştırılabilirin yanına ek dosya eklenmesine izin vermediği durumlarda, örneğin kilitli bir kurulum dizininde veya tek bir ikili dosya olarak dağıtılan bir araçta faydalıdır.

Kullanılabilirlik

Statik OpenSSL bağlama, sgcWebSockets'in Enterprise ve All-Access sürümlerinde sunulur. sgcWebSockets'in her platformda desteklediği TLS arka uçlarının tam resmi için SSL / TLS bölümüne ve OpenSSL TLS arka ucu sayfasına bakın.

sgcWebSockets indirme sayfasından indirin, ya da GetIt üzerinden veya kayıtlı hesabınız aracılığıyla edinin.

DLL'siz bir dağıtım planlarken sorularınız veya geri bildiriminiz mi var? Bizimle iletişime geçin, yanıtı kodu yazan kişilerden alacaksınız.