2014-02-05 88 views
1

如何在Ubuntu服務器12.04上設置postgresql 9.1,以便通過SSL對Windows AD服務器使用LDAP身份驗證。通過SSL進行Postgresql LDAP身份驗證

客戶端SSL設置並在postgresql中工作。

沒有SSL的LDAP工作。

pg_hba.conf中我有這樣的:

hostssl ldaptest all 0.0.0.0/0 ldap ldapserver="myldapserver.local" ldapprefix="cn=" ldapsuffix=", ou=TestOU, dc=sub, dc=example, dc=local" 

我能夠用psql連接,雖然如預期密碼加密發送。

如果我將它設置爲使用TLS普通端口(389)上:

hostssl ldaptest all 0.0.0.0/0 ldap ldapserver="myldapserver.local" ldapprefix="cn=" ldapsuffix=", ou=TestOU, dc=sub, dc=example, dc=local" ldaptls=1 

我得到:

could not start LDAP TLS session: error code -11 

如果我將它設置爲使用LDAPS端口(636)使用SSL :

hostssl ldaptest all 0.0.0.0/0 ldap ldapserver="myldapserver.local" ldapprefix="cn=" ldapsuffix=", ou=TestOU, dc=sub, dc=example, dc=local" ldaptls=0 ldapport=636 

我得到:

LDAP login failed for user "cn=Teszt User,ou=TestOU,dc=sub,dc=example,dc=local" on server "ratotdc.okologia.mta.local": error code -1 

如果我把兩個TLS和端口設置爲636,我得到:

could not start LDAP TLS session: error code -11 

我在我的ldap.conf服務器證書:

TLS_CACERT  /root/certs/infolabtest_cert.cer 

ldapsearch的作品通過SSL和回報正確的結果:

ldapsearch -W -H ldaps://myldapserver:636/ -D "CN=Teszt User,OU=TestOU,DC=sub,DC=example,DC=local" -b "ou=testou,dc=sub,dc=example,dc=local" "CN" 

任何想法都是值得歡迎的。

回答

1

這有點困難。我找到了答案在這裏:http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

確保LDAP通信的常見另一種方法是使用 SSL隧道。這通過使用URL方案 「ldaps」在LDAP URL中表示。基於SSL的LDAP的默認端口爲636.通過SSL使用LDAP 在LDAP版本2(LDAPv2)中很常見,但從未在任何正式規範中標準化爲 。這種用法已經 與LDAPv2的,這是正式於2003年

Posgres不支持LDAPv2的(E.I. ldpas://)退休沿過時,但它支持的LDAPv3 TLS