1.openldap客户端证书认证几种方式:
TLSVerifyClient [never、allow、try、demand]
设置是否验证客户端发起的tls连接。
never:默认选项,不验证客户端证书。
allow:检查客户端证书,没有证书或证书错误,都允许连接。
try:检查客户端证书,没有证书(允许连接),证书错误(终止连接)。
demand | hard | true:检查客户端证书,没有证书或证书错误都将立即终止连接。
启用非默认TLSVerifyClient设置,为了使用外部身份验证机制和SASL TLS会话。
2.证书配置
1.将证书拷贝到服务器上,编辑slapd.conf文件,加入证书配置
TLSCipherSuite HIGH:MEDIUM:+SSLv2:+SSLv3TLSCACertificatePath /etc/openldap/certsTLSCertificateFile /etc/openldap/certs/chegva.com.crtTLSCertificateKeyFile /etc/openldap/certs/chegva.com.keyTLSVerifyClient allow
2.更改ldap客户端访问配置文件ldap.conf
vim /etc/openldap/ldap.conf && chmod 700 /etc/openldap/certs
BASE dc=chegva,dc=com
URI ldap://chegva.com ldaps://chegva.com:636
ssl start_tlsssl ontls_checkpeer yesTLS_REQCERT allowTLS_CACERTDIR /etc/openldap/certsTLS_CACERT /etc/openldap/certs/chegva.com.crt
3.打开ldap系统配置,支持ldaps
SLAPD_LDAP=yes
SLAPD_LDAPI=yes
SLAPD_LDAPS=yes
4.重启ldap服务
service slapd stop
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap.ldap /etc/openldap/slapd.d
service slapd restart
chkconfig slapd on
netstat -tunpl|grep "slapd"
ps -ef|grep slapd
3.测试
ldapwhoami -v -x -Z
ldap_initialize( <DEFAULT> )ldap_start_tls: Operations error (1)
additional info: TLS already startedanonymousResult: Success (0)
2.tls连接过程查看
ldapsearch -d 1 -v -H ldaps://chegva.com:636
3.ldaps验证用户密码
ldapwhoami -D "cn=anzhihe,ou=fbi,dc=chegva,dc=com" -W -H ldaps://chegva.com:636 -v
ldap_initialize( ldaps://chegva.com:636/??base )Enter LDAP Password:dn:cn=anzhihe,ou=fbi,dc=chegva,dc=comResult: Success (0)
4.查看base节点所有信息
ldapsearch -x -b 'dc=chegva,dc=com' '(objectClass=*)' -H ldaps://chegva.com:636 -D "cn=admin,dc=chegva,dc=com" -W
▼OpenLDAP部署文档