ldap_start_tls – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self ldap_start_tls Thu, 01 Feb 07 03:42:57 Z https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074234#m1074234 https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074234#m1074234 <p>Hallo Forum,</p> <p>ich moechte mit PHP eine Verbindung zu einem LDAP Server herstellen.</p> <p>Es existiert ein "Bind User" mit Passwort, der die erforderlichen Rechte hat. Verbindungen zum LDAP Server sind nur mit TLS zugelassen.</p> <p>Ohne TLS bekomme ich deshalb die Fehlermeldung:<br> "Unable to bind to server: Confidentiality required"</p> <p>Mit ldap_start_tls() kommt aber keine Verbindung zustande:<br> "Unable to start TLS: Connect error"<br> und als Folge davon ist es natuerlich nicht moeglich ldap_bind() erfolgreich aufzurufen:<br> "Unable to bind to server: Can't contact LDAP server"</p> <p>Wenn diese Information hilft: Der Server, auf dem das PHP-Script liegt, ist (leider) ein Windows-Server (Apache 2, PHP 5).</p> <p>Leider ist ldap_start_tls() in der PHP-Dokumentation komplett undokumentiert, Kommentare dazu haben mir leider nicht weitergeholfen und ich konnte auch keinen Eintrag in diesem Forum zu dem Thema finden.</p> <p>Wenn jemand Erfahrung mit PHP, LDAP und TLS hat waere ich sehr dankbar fuer jeden Tipp.</p> <p>Im folgenden noch ein knappes "Test-Script":</p> <pre><code class="block language-php"> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token function">ini_set</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'display_errors'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'On'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">error_reporting</span><span class="token punctuation">(</span><span class="token constant">E_ALL</span> <span class="token operator">^</span> <span class="token constant">E_NOTICE</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ldap_host</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'ldap://ldap.server.auckland.ac.nz'</span><span class="token punctuation">;</span> <span class="token variable">$ldap_port</span> <span class="token operator">=</span> <span class="token number">389</span><span class="token punctuation">;</span> <span class="token comment">// ldaps: 636, ldap: 389 </span> <span class="token variable">$ldap_bind_user</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'username'</span><span class="token punctuation">;</span> <span class="token variable">$ldap_bind_password</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'password'</span><span class="token punctuation">;</span> <span class="token comment">// change to ldap version 3 (required for TLS) </span> <span class="token variable">$ldap_conn</span> <span class="token operator">=</span> <span class="token function">ldap_connect</span><span class="token punctuation">(</span><span class="token variable">$ldap_host</span><span class="token punctuation">,</span> <span class="token variable">$ldap_port</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">ldap_set_option</span><span class="token punctuation">(</span><span class="token variable">$ds</span><span class="token punctuation">,</span> <span class="token constant">LDAP_OPT_PROTOCOL_VERSION</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$ldap_conn</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">ldap_start_tls</span><span class="token punctuation">(</span><span class="token variable">$ldap_conn</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// wird diese Zeile auskommentiert kommt es zu der Fehlermeldung: "Confidentiality required" </span> <span class="token comment">// binding to ldap server </span> <span class="token variable">$ldap_bind</span> <span class="token operator">=</span> <span class="token function">ldap_bind</span><span class="token punctuation">(</span><span class="token variable">$ldap_conn</span><span class="token punctuation">,</span> <span class="token variable">$ldap_bind_user</span><span class="token punctuation">,</span> <span class="token variable">$ldap_bind_password</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token delimiter important">?></span></span> </code></pre> <p>Viele Gruesse<br> Anatol</p> ldap_start_tls Thu, 01 Feb 07 07:54:56 Z https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074235#m1074235 https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074235#m1074235 <p>hi,</p> <blockquote> <p>Mit ldap_start_tls() kommt aber keine Verbindung zustande:<br> "Unable to start TLS: Connect error"</p> </blockquote> <p>Googlen nach der Meldung bringt bspw. <a href="http://www.nabble.com/can't-get-StartTLS-working-(Unable-to-start-TLS:-Connect-error)-t2353221.html" rel="nofollow noopener noreferrer">http://www.nabble.com/can't-get-StartTLS-working-(Unable-to-start-TLS:-Connect-error)-t2353221.html</a>, und dort wird es wohl auf Probleme mit den Konfigurationsdateien und demzufolge mit den Zertifikaten geschoben.</p> <p><a href="http://bugs.php.net/bug.php?id=17738" rel="nofollow noopener noreferrer">http://bugs.php.net/bug.php?id=17738</a> dreht sich ebenfalls um dieses Thema - da wird u.a. vom Austausch eines Wildcard-Zertifikates, mit welchem es von der command line problemlos "funktioniert", aus PHP heraus aber nicht, durch ein spezieller qualifiziertes gesprochen.</p> <p>Schau doch mal, ob dir das weiterhilft.</p> <p>gruß,<br> wahsaga</p> <div class="signature">-- <br> /voodoo.css:<br> #GeorgeWBush { position:absolute; bottom:-6ft; } </div> ldap_start_tls Thu, 01 Feb 07 20:49:46 Z https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074236#m1074236 https://forum.selfhtml.org/self/2007/feb/1/ldap_start_tls/1074236#m1074236 <p>Hi,</p> <p>Danke fuer die Tipps. Wenn ich das Problem (hoffentlich) geloest habe, kann ich das hier im Forum posten.</p> <p>Schoene Gruesse<br> Anatol</p>