docker
docker 部署合集
docker搭建OpenLDAP
docker-compose
phpLdapAdmin 创建用户和组
jenkins 集成 ldap
添加memberOf模块
gitlab 集成ldap
OpenLDAP多主复制(基于docker容器模式部署)
ldap 日志
LDAP自助密码服务平台
cadvisor
开放 端口 和 套接字
docker命令
Weave Scope
cmd entrypoint
docker-compose 删除数据卷
docker slim
面试
harbor 更新证书
Docker Build Cache 缓存清理
本文档使用 MrDoc 发布
-
+
首页
docker-compose
gihub https://github.com/osixia/docker-openldap ## 正常配置 ``` yaml version: '2' services: openldap: image: osixia/openldap:1.5.0 container_name: openldap environment: LDAP_LOG_LEVEL: "256" LDAP_ORGANISATION: "leg" LDAP_DOMAIN: "leg.cg" LDAP_BASE_DN: "" LDAP_ADMIN_PASSWORD: "admin" LDAP_CONFIG_PASSWORD: "config" LDAP_READONLY_USER: "false" #LDAP_READONLY_USER_USERNAME: "readonly" #LDAP_READONLY_USER_PASSWORD: "readonly" LDAP_RFC2307BIS_SCHEMA: "false" LDAP_BACKEND: "mdb" LDAP_REPLICATION: "false" #LDAP_REPLICATION_CONFIG_SYNCPROV: 'binddn="cn=admin,cn=config" bindmethod=simple credentials="$$LDAP_CONFIG_PASSWORD" searchbase="cn=config" type=refreshAndPersist retry="60 +" timeout=1 starttls=critical' #LDAP_REPLICATION_DB_SYNCPROV: 'binddn="cn=admin,$$LDAP_BASE_DN" bindmethod=simple credentials="$$LDAP_ADMIN_PASSWORD" searchbase="$$LDAP_BASE_DN" type=refreshAndPersist interval=00:00:00:10 retry="60 +" timeout=1 starttls=critical' #LDAP_REPLICATION_HOSTS: "#PYTHON2BASH:['ldap://ldap.example.org','ldap://ldap2.example.org']" tty: true stdin_open: true volumes: - /var/lib/ldap - /etc/ldap/slapd.d - /container/service/slapd/assets/certs/ ports: - "389:389" - "636:636" # For replication to work correctly, domainname and hostname must be # set correctly so that "hostname"."domainname" equates to the # fully-qualified domain name for the host. hostname: "ldap-server" phpldapadmin: image: osixia/phpldapadmin:latest container_name: phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: "openldap" PHPLDAPADMIN_HTTPS: "false" ports: - "8080:80" depends_on: - openldap ``` ## 添加 tls ``` version: '2' services: openldap: image: osixia/openldap:1.5.0 container_name: openldap environment: LDAP_LOG_LEVEL: "256" LDAP_ORGANISATION: "leg company" LDAP_DOMAIN: "davidops.info" LDAP_BASE_DN: "" LDAP_ADMIN_PASSWORD: "admin123" LDAP_CONFIG_PASSWORD: "config123" LDAP_READONLY_USER: "false" #LDAP_READONLY_USER_USERNAME: "readonly" #LDAP_READONLY_USER_PASSWORD: "readonly" LDAP_RFC2307BIS_SCHEMA: "false" LDAP_BACKEND: "mdb" LDAP_TLS: "true" LDAP_TLS_CRT_FILENAME: "fullchain.cer" LDAP_TLS_KEY_FILENAME: "*.davidops.info.key" LDAP_TLS_CA_CRT_FILENAME: "ca.cer" LDAP_TLS_ENFORCE: "false" #LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0" LDAP_TLS_VERIFY_CLIENT: "never" LDAP_REPLICATION: "false" #LDAP_REPLICATION_CONFIG_SYNCPROV: 'binddn="cn=admin,cn=config" bindmethod=simple credentials="$$LDAP_CONFIG_PASSWORD" searchbase="cn=config" type=refreshAndPersist retry="60 +" timeout=1 starttls=critical' #LDAP_REPLICATION_DB_SYNCPROV: 'binddn="cn=admin,$$LDAP_BASE_DN" bindmethod=simple credentials="$$LDAP_ADMIN_PASSWORD" searchbase="$$LDAP_BASE_DN" type=refreshAndPersist interval=00:00:00:10 retry="60 +" timeout=1 starttls=critical' #LDAP_REPLICATION_HOSTS: "#PYTHON2BASH:['ldap://ldap.example.org','ldap://ldap2.example.org']" KEEP_EXISTING_CONFIG: "false" LDAP_REMOVE_CONFIG_AFTER_SETUP: "true" LDAP_SSL_HELPER_PREFIX: "ldap" tty: true stdin_open: true volumes: - /root/ldap/ldap:/var/lib/ldap - /root/ldap/slapd.d:/etc/ldap/slapd.d - /root/ldap/certs:/container/service/slapd/assets/certs/ ports: - "389:389" - "636:636" # For replication to work correctly, domainname and hostname must be # set correctly so that "hostname"."domainname" equates to the # fully-qualified domain name for the host. domainname: "davidops.info" hostname: "ldap-server" phpldapadmin: image: osixia/phpldapadmin:latest container_name: phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: "openldap" PHPLDAPADMIN_HTTPS: "false" ports: - "8080:80" depends_on: - openldap ``` ### tls错误处理 从你提供的配置中,我们可以看到一些可能与你遇到的 TLS 握手问题有关的设置: 1. `LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"`:这个设置定义了你的 LDAP 服务使用的密码套件。`SECURE256` 是一个高级的密码套件,可能不被所有客户端支持。`-VERS-SSL3.0` 表示 SSL 3.0 版本被禁用,这是一个好的安全实践,因为 SSL 3.0 已经被证明有很多安全问题。然而,如果你的客户端只支持 SSL 3.0,那么这个设置就会导致握手失败。 2. `LDAP_TLS_VERIFY_CLIENT: "demand"`:这个设置表示你的服务器要求客户端提供一个由你的服务器信任的证书颁发机构签发的证书。如果客户端没有提供这样的证书,或者证书无效,那么握手就会失败。 你可以尝试以下的解决方案: 1. **更改密码套件**:尝试使用一个更常见的密码套件,比如 `HIGH:!aNULL:!MD5`,看看是否可以解决问题。这个密码套件包含了许多常见的、安全的密码算法,应该被大多数客户端支持。 2. **检查客户端证书**:确保你的客户端有一个有效的证书,该证书是由你的服务器信任的证书颁发机构签发的。你也可以暂时关闭客户端证书验证(将 `LDAP_TLS_VERIFY_CLIENT` 设置为 `"never"`),看看是否可以解决问题。如果这样可以解决问题,那么你就知道问题出在客户端证书上。 记住,任何更改都可能会影响你的服务器的安全性,因此在做出更改时一定要谨慎。在生产环境中,你应该尽可能地使用最新、最安全的设置。
admin
2023年8月15日 12:17
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码