Přístup do LDAP SSL z PHP aplikace ve Windows

Před nějakou dobou jsem potřeboval odbavovat jednoduchý PHP skript, který pracoval s uživatelskými účty v Active Directory. Pokud ale takový skript pracuje s hesly, nebo parametry pro platnost účtu, systém požaduje připojení přes LDAP over SSL (ldaps).

PHP aplikace nám běží na Windows Serveru a Microsoft IIS. Průzkumem internetu se mi povedlo web server nakonfigurovat, takže se o výsledek podělím a hlavně si ho zaznamenám pro případ další potřeby Smile Předpokládám, že PHP už máte na Windows Serveru rozchozené. Pokud ne, použijte instalaci přes Web Platform Installer.

Konfigurace PHP

Otevřeme si php.ini pro editaci a povolíme (odkomentujeme):
extension=php_ldap.dll
extension=php_openssl.dll

Nahrání DLL knihoven do systému

Z adresáře instalace PHP překopírujeme knihovnu libeay32.dll do systémové složky operačního systému (nejčastěji c:\windows\system32). V případě, že z neznámých důvodů potřebujeme provozovat super-prehistorickou verzi PHP 4.2 a nižší, použijeme soubor libsasl.dll.

Konfigurační soubor k LDAP

Vytvořme adresář C:\openldap\sysconf, který bude obsahovat soubor ldap.conf. Jeho obsah by měl vypadat následovně:

TLS_REQCERT never
TLS_CACERT c:\openldap\sysconf\myserver.pem

Instalace certifikační autority

Active Directory by měla mít nainstalovanou certifikační autoritu. Pokud nemá, nainstalujete jí pomocí Server Manager – Add roles and features – Server Roles – Active Directory Certificate Services.

Po úspěšné instalaci začne Active Directory poslouchat na portu 636.

Získání Active Directory certfikátu

Na serveru s certifikační autoritou si otevřeme MMC konzoli a připojíme snap-in Certifikační autorita. Následně klikneme na jeho název pravým tlačítkem, zvolíme vlastnosti. Na kartě Obecné pak Zobrazit certifikát, karta Podrobnosti a Kopírovat do souboru.

Certifikát vyexportujeme do souboru *.cer, jako Base-64 Encoded X.509(.cer).

Konverze certifikátu

Pro běh PHP potřebujeme certifikát nikoliv ve formátu *.cer, ale *.pem. Konverzi můžeme provést například přes openSSL. Příklad příkazu pro konverzi:

C:\openssl\openssl x509 -in myserver.cer -out myserver.pem

Instalace certifikátu

Certifikát myserver.pem překopírujeme do cesty zadané v souboru ldap.conf.

Nyní restartujte IIS, aby se upravená konfigurace osvěžila na serveru a ldap_connect(‚ldaps://ldapserver.domana.ltd/‘); začne fungovat.

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

Logo WordPress.com

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Google photo

Komentujete pomocí vašeho Google účtu. Odhlásit /  Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s