You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS环境PHP执行ldap_start_tls报TLS/SSL已生效错误如何解决

错误原因

  • 核心原因是重复启用TLS加密:你使用ldaps://协议+636端口连接LDAP服务器时,TCP连接建立阶段会自动完成TLS握手,全程链路都是加密的。但你实际运行的代码中额外调用了ldap_start_tls()函数(报错行26可验证),这个函数仅用于普通ldap://协议+389端口的连接升级TLS加密,在已经启用SSL的ldaps连接上调用就会触发「TLS or SSL already in effect」的报错。
  • 次要可能原因:OpenLDAP客户端未正确配置证书读取路径,或证书权限不足,导致加密验证不通过。

解决步骤

  1. 删除多余的ldap_start_tls调用
    直接删掉代码中第26行的ldap_start_tls()相关代码,不需要在ldaps连接上重复开启TLS。
  2. 校验OpenLDAP客户端配置
    编辑/etc/openldap/ldap.conf文件,确认存在以下配置:
# 配置证书存放目录
TLS_CACERTDIR /etc/openldap/certs
# 生产环境建议设置为demand强制校验证书合法性,测试环境可临时设为allow跳过校验
TLS_REQCERT demand
  1. 修正证书权限
    执行以下命令保证证书可被PHP运行用户读取:
chmod 644 /etc/openldap/certs/*.pem
chown root:root /etc/openldap/certs/*.pem
  1. 验证调整后的代码
    你提供的现有连接代码无需其他修改,移除ldap_start_tls后即可正常运行,测试时可以去掉ldap_bind前的@错误抑制符,方便排查其他潜在问题。

内容的提问来源于stack exchange,提问作者Ravi Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:27:00