Php 警告:ldap_start_tls()[function.ldap start tls]:无法启动tls:服务器不可用

Php 警告:ldap_start_tls()[function.ldap start tls]:无法启动tls:服务器不可用,php,starttls,Php,Starttls,警告:ldap_start_tls()[function.ldap start tls]:无法启动tls:Server在第13行的/var/www/html/testldap/index.php中不可用 Ldap\u启动\u tls失败 我的配置如下 Centos 5.7 PHP版本5.3.3 已配置php53 ldap。不管我怎么做,starttls问题都让我头疼。任何帮助都将不胜感激。您是否使用了PHP——使用ldap[=DIR] 此外: 如果您已经通过SSL连接到ldap服务器,请不要使用

警告:ldap_start_tls()[function.ldap start tls]:无法启动tls:Server在第13行的/var/www/html/testldap/index.php中不可用 Ldap\u启动\u tls失败

我的配置如下

Centos 5.7 PHP版本5.3.3

已配置php53 ldap。不管我怎么做,starttls问题都让我头疼。任何帮助都将不胜感激。

您是否使用了PHP——使用ldap[=DIR]

此外:

  • 如果您已经通过SSL连接到ldap服务器,请不要使用ldap_start_tls(),例如。“ldaps://hostame“
  • 使用ldap://而不是ldaps://调用ldap_connect(),以使ldap_start_tls()成功

  • .

    好吧,这是一次多么有趣的旅程啊

    您遇到的问题是,您的计算机不接受服务器的证书作为有效证书。解决这个问题的简单方法是禁用检查,这是在ldap.conf文件中或使用环境变量完成的

    您可以在
    /etc/openldap/ldap.conf
    c:\openldap\sysconf\ldap.conf
    在Windows上)编辑该文件,或者创建一个文件(如果该文件不存在),并将此行放在其中:

    TLS_REQCERT never
    
    …或者您可以创建一个名为
    LDAPTLS\u REQCERT
    的环境变量,其值为
    never

    一旦我完成了这两件事中的任何一件,以下脚本对我起了作用:

    <?php
    
      // Settings
      $host = 'server.domain.local';
      $port = 389;
      $user = 'administrator';
      $pass = 'password';
    
      // Connect, set options and bind
      $ds = ldap_connect($host, $port);
      if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) exit('Could not disable referrals');
      if (!ldap_set_option($ds, LDAP_OPT_REFERRALS, 0)) exit('Could not disable referrals');
      if (!ldap_start_tls($ds)) exit('Could not start TLS');
      if (!ldap_bind($ds, $user, $pass)) exit('Bind operation failed');
    
      // A quick list operation to make sure it worked
      if (!$result = ldap_list($ds, 'dc=domain,dc=local', 'objectClass=*')) exit('List operation failed');
      print_r(ldap_get_entries($ds, $result));
    

    请显示您的代码,并建议您尝试连接到哪个LDAP提供商。我已使用php LDAP配置了php。我有active directory系统管理员的设置,因此需要使用它们。Life saver
    mkdir C:\openldap\sysconf
    @DaveRandom,我可以在允许较低安全协议(如TLS 1.1和更低版本)的LDAP服务器上使用此方法进行连接,但我尝试安全地连接到仅允许TLS 1.2的LDAP服务器。我得到一个“无法连接到LDAP服务器”(如果我连接不安全,则连接成功)。我确信TLS 1.2协议在我这边是启用的。通过检查windows注册表确保,并且能够通过浏览器(如IE、chrome)通过TLS 1.2进行连接。任何关于我的问题的线索。非常感谢您的帮助。