我们的代码库通过ldap_*
函数连接到我们的Active Directory。我今天早上才知道他们正在通过TLS 1.0连接到我们的广告。
问题1 :是否有一种方法可以强制ldap_*
函数通过TLS 1.2连接?
其他信息:
我已经尝试使用类似“ 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?
答案 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。
有可能使用第三方库,但这是一罐我选择不打开的蠕虫。