Zum Hauptinhalt springen

Windows Server

Das PHP-Modul ldap wird unter Windows als php_ldap.dll geladen und verwendet die OpenLDAP-Client-Bibliotheken. Bei einer Verbindung über LDAPS oder mit StartTLS wird das Serverzertifikat nicht über den Windows-Zertifikatspeicher, sondern über die von OpenLDAP verwendete TLS-Schicht überprüft.

Das Hinzufügen des Zertifikats zum vertrauenswürdigen Windows-Zertifikatspeicher wird bei der Überprüfung einer LDAPS-Verbindung in php_ldap.dll nicht verwendet und hat keinen Einfluss auf OpenLDAP. OpenLDAP muss den Pfad zum CA-Zertifikat oder CA-Bundle erhalten, das das Serverzertifikat des Verzeichnisdienstes ausgestellt hat.

Funktionsweise

Beim Aufbau einer TLS-Verbindung sendet der LDAP-Server sein Zertifikat. OpenLDAP prüft, ob von diesem Zertifikat aus eine vertrauenswürdige Kette zu einer bekannten Zertifizierungsstelle aufgebaut werden kann. Ist das CA-Zertifikat in der OpenLDAP-Konfiguration nicht angegeben, schlägt die Verbindung mit einem Zertifikatsüberprüfungsfehler fehl.

Unter Windows verwendet PHP LDAP in der Regel die Datei ldap.conf. Der Parameter TLS_CACERT in dieser Datei legt den Pfad zum CA-Zertifikat oder zur Bundle-Datei fest. Damit der PHP-Prozess die erforderliche Konfigurationsdatei und das Zertifikat verwendet, legen Sie die Systemumgebungsvariablen LDAPCONF und LDAPTLS_CACERT fest.

Konfiguration

gefahr

Bitte beachten Sie:

  • Die Befehle müssen in PowerShell als Administrator ausgeführt werden.
  • Starten Sie nach den Änderungen den Windows Server neu, damit alle Prozesse die aktualisierte Umgebung übernehmen.
  1. Erstellen Sie ein Verzeichnis für die OpenLDAP-Konfiguration:
New-Item -ItemType Directory -Force C:\openldap\sysconf
  1. Platzieren Sie das CA-Zertifikat oder CA-Bundle in diesem Verzeichnis:
C:\openldap\sysconf\ldaps-ca-bundle.cer

Die Datei muss im PEM/Base64-Format vorliegen:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

Wird in der Infrastruktur eine Zwischenzertifizierungsstelle verwendet, fügen Sie die vollständige CA-Zertifikatskette in dieselbe Datei ein.

  1. Erstellen Sie die Datei C:\openldap\sysconf\ldap.conf mit folgendem Inhalt:
TLS_CACERT C:/openldap/sysconf/ldaps-ca-bundle.cer

TLS_REQCERT demand
info

TLS_CACERT gibt den Pfad zum CA-Bundle an. Es wird empfohlen, im Pfad Schrägstriche / zu verwenden.

  1. Legen Sie die Systemumgebungsvariablen für OpenLDAP fest:
[Environment]::SetEnvironmentVariable("LDAPCONF", "C:\openldap\sysconf\ldap.conf", "Machine")
[Environment]::SetEnvironmentVariable("LDAPTLS_CACERT", "C:/openldap/sysconf/ldaps-ca-bundle.cer", "Machine")
  1. Starten Sie IIS neu:
iisreset