Irf*_*son 1 php windows security bind
我试图在Windows PHP本地测试环境中查询安全连接中的远程LDAP服务器.我认为我必须正确授予访问权限,因为我可以使用LDAP浏览器应用程序并且可以很好地连接到远程服务器.此外,如果我'telnet remoteserverurl.com 636'然后在命令提示符中显示一个空白屏幕,所以我至少连接.但是在我的下面的.php代码中,我在bind上遇到错误:"PHP警告:ldap_bind():无法绑定到服务器:无法联系LDAP服务器......"
相同的代码适用于Linux服务器.我认为在我的本地php环境中有一些缺少的LDAP库用于安全的LDAP连接?无论如何,这是代码:
$ds=ldap_connect("ldaps://serveraddress.com", "636"); // remote server
//$ds=ldap_connect("ldap://localhost", 389); // works
//putenv('LDAPTLS_REQCERT=never');//doesn't help with secure ldap
//ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); //works for local LDAP server (Open LDAP)
$r=ldap_bind($ds, "cn=xxx,ou=proxy,o=xxx", "passwordxxxx");//throws error for remote
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢!
小智 5
知道这个更老了,但是我最近在Windows 2008和2012上使用wordpress 3.x和4.x时遇到了类似的问题(IIS 7.x和8.x,PHP 5.6).
我为wordpress编写了一个ldap身份验证插件 - 就像试图获取LDAPS一样(ldap通过端口636工作安全).
情侣:
ldaps://
.所以server1.domain.com
对于LDAPS应该ldaps://server1.domain.com/
......注意你根本不需要为连接方法传递端口(根据http://php.net/manual/en/function.ldap-connect.php).这与原始问题在提交中的内容非常相似.ldap.conf
) C:\openldap\sysconf\ldap.conf
.TLS_REQCERT never
...但这意味着没有验证证书,并且所有证书都是自动受信任的(基本上) - 应仅用于测试...永远不会用于生产,因为您违反了部分TLS/SSL安全措施(即证明你确实正在与你认为自己有联系的主人交谈.TLS_REQCERT never
似乎是关于互联网的流行(也许是误导)建议的不安全选项......抓住curl和类似使用的公共证书颁发机构列表 - http://curl.haxx.se/ca/cacert. pem.这基本上就是firefox附带的公共证书颁发机构信任(即,这就是为什么你可以安装firefox并在没有证书警告的情况下访问https://amazon.com等).c:\php5\cacert.pem
.您的位置可能会有所不同,但可以将其放在可以访问的位置,并将与php相关联,因为它是相关的.这里有几个cacert.pem
文件内容的镜头,让你了解里面的内容.
C:\openldap\sysconf\ldap.conf
并为命令添加一行,TLS_CACERT
如图所示.
.cer
base64格式 - 不需要私钥和扩展名无关紧要 - 只需要一个哈希输出).如果您以正确的格式导出它,则可以打开证书文件并查看哈希 - 它与Thawte Server CA示例的屏幕截图类似(但不完全相同).只需将导出的哈希附加到cacert.pem文件中即可信任.如果您希望变得聪明,您可以为您的私人颁发的证书导入颁发证书 - 这将信任由导入的证书签署的任何证书.如果有疑问,您可以随时导入提供的证书.curl.cainfo =
. 归档时间: |
|
查看次数: |
3506 次 |
最近记录: |