OpenSSL-DLLs für Windows: Eine Zusammenstellung für Entwickler (z. B. Lazarus)

Bei der Entwicklung von Windows-Anwendungen – beispielsweise mit Lazarus (Free Pascal) – wird für verschlüsselte Netzwerkverbindungen häufig OpenSSL benötigt. Da Windows diese Bibliotheken nicht standardmäßig mitbringt, müssen die passenden DLL-Dateien zusammen mit der Anwendung ausgeliefert werden.

Für meine eigenen Projekte habe ich eine Auswahl häufig benötigter OpenSSL-Dateien zusammengestellt und stelle diese hier als Download zur Verfügung.


Inhalt des Pakets

Die Sammlung enthält Dateien aus verschiedenen OpenSSL-Zweigen und für unterschiedliche Architekturen. Je nach Alter des Projekts, verwendeter Komponente und Zielplattform werden unterschiedliche Bibliotheken benötigt.

OpenSSL 3.x (64-Bit)

Diese Dateien werden von vielen neueren 64-Bit-Anwendungen und modernen HTTP-Clients vorausgesetzt:

  • libcrypto-3-x64.dll
  • libssl-3-x64.dll
  • libcrypto.dll – wird von manchen Frameworks unter diesem generischen Namen gesucht

OpenSSL 1.1.x (64-Bit)

Diese Dateien werden von 64-Bit-Anwendungen und Komponenten verwendet, die noch nicht auf OpenSSL 3.x umgestellt wurden:

  • libcrypto-1_1-x64.dll
  • libssl-1_1-x64.dll

OpenSSL 1.1.x (32-Bit)

Diese Dateien werden von 32-Bit-Anwendungen benötigt. Dazu gehören beispielsweise Lazarus-Anwendungen, die für das Ziel i386-win32 kompiliert wurden:

  • libcrypto-1_1.dll
  • libssl-1_1.dll

Beide Dateien müssen gemeinsam verwendet werden und dürfen nicht mit den entsprechenden 64-Bit-Versionen kombiniert werden.

Ältere OpenSSL-Versionen (1.0.x)

Diese Dateien werden häufig von älteren Projekten oder Netzwerkkomponenten benötigt, beispielsweise von bestimmten Versionen von Indy oder Synapse:

  • libeay32.dll
  • ssleay32.dll

Die Zahl 32 im Dateinamen ist historisch bedingt und nicht in jedem Fall ein verlässlicher Hinweis auf die tatsächliche Architektur. Im Zweifelsfall sollte diese vor der Verwendung geprüft werden.


Verwendung

In der Praxis ist es am sichersten, das benötigte DLL-Paar direkt in das Verzeichnis der ausführbaren Anwendung – also neben die .exe – zu kopieren. Dadurch bleibt die Anwendung portabel und verwendet genau die Bibliotheken, mit denen sie getestet wurde.
Dabei sind folgende Punkte zu beachten:

  • Eine 32-Bit-Anwendung benötigt 32-Bit-DLLs.
  • Eine 64-Bit-Anwendung benötigt 64-Bit-DLLs.
  • libssl und libcrypto müssen aus demselben OpenSSL-Paket stammen.
  • Dateien unterschiedlicher OpenSSL-Versionen dürfen nicht miteinander kombiniert werden.
  • Das Umbenennen neuer DLLs in ältere Dateinamen stellt keine Kompatibilität her.
  • Von einer Ablage in den Windows-Systemverzeichnissen ist abzuraten, da dies zu Versions- und Architekturkonflikten führen kann.

Sicherheitshinweis

Der öffentliche Support für OpenSSL 1.1.1 endete im September 2023. Diese Version sollte daher nur noch eingesetzt werden, wenn sie aus Kompatibilitätsgründen benötigt wird und eine Umstellung auf eine aktuelle OpenSSL-Version noch nicht möglich ist.

Die älteren Dateien ssleay32.dll und libeay32.dll stammen aus dem Jahr 2018. Sie entsprechen nicht mehr dem aktuellen Sicherheitsstandard und enthalten bekannte Sicherheitslücken. Sie sollten nur verwendet werden, um die Kompatibilität mit bestehenden und möglichst isolierten Altsystemen aufrechtzuerhalten.

Für neue oder sicherheitskritische Anwendungen empfiehlt sich eine aktuell unterstützte OpenSSL-Version, sofern die verwendete Anwendung beziehungsweise deren TLS-Anbindung diese unterstützt.
Download der DLL-Dateien

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert