親切なメンバーが回答した別の質問のおかげで、最終的にLDAPSSL接続を受け入れるようにサーバーをセットアップしました。
私たちの問題は、以下の単純なPHPスクリプトを使用してldapにバインドしようとすると、常に失敗することです。ldapsの代わりにldapを使用したバインドは、スクリプトを使用して問題なく機能するため、ldapが有効になっていることがわかりますキャッチャーは、LDP.exeを使用している間、安全な接続を使用してポート636でLDAPに正常に接続してバインドできることです。
失敗しているスクリプトは次のとおりです。
<?php
$ldap = ldap_connect("ldaps://localhost");
$username="user";
$password="pass";
if($bind = ldap_bind($ldap, $username,$password ))
echo "logged in";
else
echo "fail";
echo "<br/>done";
?>
また、ユーザー名を「user @domain」または「domain/user」として入力しようとしましたが、成功しませんでした。私は永遠にLDAP/Certの質問をしているようです。私たちの環境はServer2008です。
追随: http://greg.cathell.net/php_ldap_ssl.html
手順3、5〜7はWindowsで完了する必要があるようです。
PHP 7.xを使用しているときに、最後に別の解決策を見つけました。これが他の誰かに役立つことを願っています。
ここでredditユーザーgripejonesに感謝します: https://www.reddit.com/r/PHPhelp/comments/3tykpc/php_7_and_ldap/
PHP 7では、環境変数(LDAPCONF)が設定ファイルの場所に設定されている必要があります。以前は、構成ファイルをこのフォルダーC:\ openldap\sysconf\ldap.confまたはC:\ ldap.confのいずれかに置くことができました。
ここでステップ2に記載されているように、dllファイルをコピーする必要はありません: http://greg.cathell.net/php_ldap_ssl.html
LDAPサーバーへの参照がldaps:// servernameの形式であり、サーバー名が証明書のサーバー名と同じであることを確認してください(xyzzy.company.comの場合は、ldaps:/を使用する必要があります。 /xyzzy.company.com、donotldaps:// xyzzyを使用)。
非標準のSSLポートを使用していない限り、ポートを含める必要はありません。
[〜#〜] url [〜#〜] を変更して、SSLに使用されるポートを含めます(例:ldaps://localhost:636
(636がLDAPサーバーが安全なクライアント接続を待機するポートであると想定)。