## Installation

Um OpenSSL mit PHP nutzen zu können, muss PHP mit der Option --with-openssl kompiliert werden.

Die OpenSSL-Bibliothek stellt einige weitere Bedingungen, um zur Laufzeit korrekt funktionieren zu können. Insbesondere benötigt OpenSSL Zugang zu einer Quelle für zufällige oder pseudo-zufällige Zahlen. Auf Unix und Unix-ähnlichen Systemen bedeutet dies, dass OpenSSL Zugang zu `/dev/urandom` oder `/dev/random` haben muss.

Die Konfigurationsoption --with-system-ciphers, die bewirkt, dass PHP statt einer voreingestellten Standardliste die Chiffreliste des Systems verwendet, steht zur Verfügung.

> Hinweis: Hinweis für Win32-Benutzer

> Diese Erweiterung benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Erweiterung benötigt die folgenden Dateien im PATH: libeay32.dll oder, von OpenSLL 1.1 an, libcrypto-*.dll

> Wenn Sie vorhaben, Funktionen zur Schlüsselerzeugung und zum Signieren von Zertifikaten zu verwenden, müssen Sie eine gültige Konfigurationsdatei für OpenSSL, openssl.cnf, installieren. Wir fügen der Win32-Binärdistribution eine Beispielkonfigurationsdatei bei, die Sie im Verzeichnis extras/ssl finden.

> PHP verwendet folgende Logik, um die openssl.cnf zu finden:

> - Die Umgebungsvariable `OPENSSL_CONF` wird, falls gesetzt, als Pfad zur Konfigurationsdatei verwendet (den Dateinamen mit eingeschlossen).
> - Die Umgebungsvariable `SSLEAY_CONF` wird, falls gesetzt, als Pfad zur Konfigurationsdatei verwendet (den Dateinamen mit eingeschlossen).
> - PHP sucht die Datei openssl.cnf an dem Ort, der bei der Kompilierung der OpenSSL-DLL als Speicherort für Zertifikate angegeben wurde. Üblicherweise ist der Standard-Dateiname C:\Program Files\Common Files\SSL\openssl.cnf (x64) oder C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86) oder, vor PHP 7.4.0, C:\usr\local\ssl\openssl.cnf.
> Bei der Installation müssen Sie entscheiden, ob Sie die Konfigurationsdatei in den Standardpfad installieren oder ob Sie sie an einem anderen Ort installieren und Umgebungsvariablen verwenden (möglicherweise auf Basis einzelner virtueller Hosts), um die Konfigurationsdatei zu finden. Bei Funktionen, die diese Konfigurationsdatei benötigen, ist es möglich, durch die Angabe des Parameters `options` den Standardpfad zu dieser Datei in einem Skript zu überschreiben.
> Achtung

> Es ist sicherzustellen, dass es nicht-privilegierten Nutzern nicht erlaubt ist openssl.cnf zu ändern.

> Seit OpenSSL 3.0.0, das unter Windows ab PHP 8.2.0 standardmäßig verwendet wird, gelten mehrere Algorithmen als veraltet. Diese werden in der Regel nicht mehr verwendet, werden von der Kryptographie-Community als unsicher eingestuft oder ähnliches. Diese Algorithmen sind weiterhin über den Legacy-Provider (extras/ssl/legacy.dll) verfügbar, dessen Verwendung im Abschnitt » Provider-Konfiguration des OpenSSL-Handbuchs beschrieben wird.

### Changelog

Version | Beschreibung
--- | ---
7.4.0 | Die --with-openssl akzeptiert kein Verzeichnis-Argument mehr. Stattdessen muss die pkg-config-Variable PKG_CONFIG_PATH auf das OpenSSL-Verzeichnis gesetzt werden, oder es müssen die Variablen OPENSSL_LIBS und OPENSSL_CFLAGS angegeben werden.
7.4.0 | Der OpenSSL-Standard-Konfigurationspfad wurde von C:\usr\local\ssl zu C:\Program Files\Common Files\SSL bzw. C:\Program Files (x86)\Common Files\SSL geändert.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open