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.
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.