在PHP 5.3中为ldap_ *功能启用TLS 1.2

时间:2018-10-10 14:56:22

标签: php ldap tls1.2

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

问题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”之类的搜索工具,但结果没有帮助。我在三个位置都找到了评论,说Windows 2012 R2 doesn't support TLS 1.2 through LDAPS禁用 TLS 1.2,但是...这与我想要的相反,到目前为止,没有问题不是在代码库中专门禁用TLS 1.2。

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

1 个答案:

答案 0 :(得分:0)

我和一个比我更了解安全性的朋友聊天。

我的问题范围太窄,问题出在我使用的PHP版本上。

为了使PHP安全地连接到Active Directory,它使用OpenSSL库。 v1.0.1中提供了OpenSSL中的TLS 1.1 / 1.2支持。 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。

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