【问题标题】:Enable TLS 1.2 for ldap_* functions in PHP 5.3在 PHP 5.3 中为 ldap_* 函数启用 TLS 1.2
【发布时间】:2019-03-15 12:50:43
【问题描述】:

我们的代码库通过ldap_* 函数连接到我们的Active Directory。我今天早上才知道他们正在通过 TLS 1.0 连接到我们的 AD。

问题 1:有没有办法强制 ldap_* 函数通过 TLS 1.2 连接?

其他信息:

  • Windows 2012 R2
  • PHP 5.3
  • IIS 8.5

我试过用谷歌搜索诸如“enable "tls 1.2" ldap php”、“"tls 1.2" ldap php”、“ldap php functions support tls 1.2”之类的东西,但结果毫无帮助。我在三个位置发现了 cmets,上面写着 Windows 2012 R2 doesn't support TLS 1.2 through LDAPSdisable TLS 1.2,但是......这与我想要的相反,到目前为止 没有在代码库中专门禁用 TLS 1.2。

后续问题ldap_* 函数是否仍然不支持在 Windows 2012 R2 上使用 PHP 的 TLS 1.2?

【问题讨论】:

    标签: php ldap tls1.2


    【解决方案1】:

    我和一位比我更了解安全的朋友交谈过。

    我的问题范围太窄,问题来自我使用的PHP版本。

    为了让 PHP 安全地连接到 Active Directory,它使用了 OpenSSL 库。 OpenSSL 中的 TLS 1.1/1.2 支持出现在 v1.0.1 中。 PHP 5.3 附带 v0.9.8。

    我的朋友给了我一个伪造 TLS 1.1 并强制 ldap 函数使用它的建议,如下所示:

    define('LDAP_OPT_X_TLS_PROTOCOL_MIN', 24583);
    define('LDAP_OPT_X_TLS_PROTOCOL_SSL2', 512);
    define('LDAP_OPT_X_TLS_PROTOCOL_SSL3', 768);
    define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_0', 769);
    define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_1', 770);
    define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_2', 771);
    

    ldap_set_option($handler, LDAP_OPT_X_TLS_PROTOCOL_MIN, LDAP_OPT_X_TLS_PROTOCOL_TLS1_1);
    

    但这对我不起作用。

    我尝试尝试在 5.3 中使用较新版本的 OpenSSL,但这些也不起作用。看来真正唯一的解决方案是更新到较新版本的 PHP,最低 5.6。

    有可能使用第三方库,但这是我选择不打开的一罐蠕虫。

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2018-12-11
      • 2018-10-31
      • 2017-07-22
      • 2016-12-07
      相关资源
      最近更新 更多