本篇告訴大家: 該如何啟用OpenLDAP的SSL與TLS功能?
Issue Certificate File
mkdir /etc/ldap/ssl cd /etc/ldap/ssl
執行產生certificate file的script:
Modify boot options
vim /etc/default/slapd
找到SLAPD_SERVICES加入ldaps:
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
Add Certificate to LDAP Config
產生tls-config.ldif檔案,內容為:
dn: cn=config add: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ldap/ssl/rootca.crt - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ssl/tonylin.crt - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ssl/tonylin.key
執行以下command將設定匯入:
ldapmodify -QY EXTERNAL -H ldapi:/// -f tls-config.ldif
正常會看到以下訊息:
modifying entry "cn=config"
最後重新啟動ldap service並檢查連線:
service slapd restart # ldaps:/// netstat -na | grep ":636" # ldap:/// netstat -na | grep ":369"
Test with Ldap Admin
最後透過LDAP Admin做測試,會出現不被信任的certificate警告:
我目標是確定可以連線就好~
Test with ApacheDirectoryStudio
改用ApacheDirectoryStudio,使用StartTLS連線;可以發現它有做certifiacte與hostname驗證:
後記
一開始我參考了此篇教學產生certification file與設定,結果一直無法正常連線。於是透過以下command打開debug mode:
/usr/sbin/slapd -d 1 -h "ldap:/// ldapi:/// ldaps:///" -g openldap -u openldap -F /etc/ldap/slapd.d
出現以下錯誤訊息:
56f10002 slap_listener_activate(10): 56f10002 >>> slap_listener(ldaps://) 56f10002 connection_get(19): got connid=1001 56f10002 connection_read(19): checking for input on id=1001 TLS: can't accept: Could not negotiate a supported cipher suite.. 56f10002 connection_read(19): TLS accept failure error=-1 id=1001, closing 56f10002 connection_close: conn=1001 sd=19
最後才試出以上方法。
留言
張貼留言