कुछ सिस्टम ldap के माध्यम से ldap से कनेक्ट नहीं हो सकते हैं, लेकिन अन्य कर सकते हैं, क्या यह वाइल्डकार्ड प्रमाणित है?


15

जब मेरे नॉवेल eDirectory 8.8 सर्वर पर ldaps कनेक्शन बनाने की कोशिश की जाती है, तो कभी-कभी मुझे TLS_REQCERT neverक्लाइंट सर्वर ldap.conf फ़ाइल में रखना पड़ता है । जाहिर है, यह एक बुरा विचार है।

मैं जिस कमांड को चलाता हूं वह कुछ इस तरह से है, जो वास्तव में काम करती है ...

ldapsearch -x -H ldaps://ldapserver -b 'ou=active,ou=people,dc=example,dc=org' -D 'cn=admin,dc=example,dc=org' -W "cn=username"

उबंटू 13.10 पर, यह ठीक काम करता है।

SLES पर यह ठीक काम करता है।

CentOS 6.5 पर यह वापस आता है:

ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

अब, मेरे द्वारा आयात किया गया सर्टिफिकेट DigiCert से खरीदा गया वाइल्डकार्ड प्रमाणपत्र है। मेरे सहकर्मी ने कुछ रिपोर्टों को यह इंगित करते हुए पाया कि कुछ प्रणालियों में वाइल्डकार्ड के साथ समस्याएँ हैं।

तो, वाइल्डकार्ड दोष के लिए प्रमाणित है? यदि हां, तो मैं इसे कैसे ठीक करूं?

यदि यह वाइल्डकार्ड प्रमाणित नहीं है, तो यह क्या है?

एंड्रयू शुलमैन के सुझाव के बाद, मैंने -d1अपनी ldapsearch कमांड में जोड़ा । यहाँ मैं के साथ समाप्त हो गया है:

ldap_url_parse_ext(ldaps://ldap.example.org)
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.org:636/??base)
Enter LDAP Password: 
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.org:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.225.0.24:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap' tokenDescription='ldap(0)' certPrefix='cacerts' keyPrefix='cacerts' flags=readOnly
TLS: cannot open certdb '/etc/openldap', error -8018:Unknown PKCS #11 error.
TLS: could not get info about the CA certificate directory /etc/openldap/cacerts - error -5950:File not found.
TLS: certificate [CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US] is not valid - error -8172:Peer's certificate issuer has been marked as not trusted by the user..
TLS: error: connect - force handshake failure: errno 2 - moznss error -8172
TLS: can't connect: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

क्या कहता है कि, CentOS DigiCert पर भरोसा नहीं करता है? या CentOS विश्वसनीय जारीकर्ताओं की सूची नहीं है?


1
"LDAP सर्वर से संपर्क नहीं कर सकता है" अधिक लगता है जैसे कि सर्वर उस क्लाइंट मशीन से आसानी से उपलब्ध नहीं है। क्या आपने पहले जाँच की है कि आप वास्तव में इससे जुड़ सकते हैं? जैसे telnet ldapserver ldapsया openssl s_client -connect ldapserver:636
रिचर्ड ई। सिल्वरमैन

हां, मैंने पुष्टि की है कि यह सर्वर से जुड़ सकता है। आखिरकार, यह कभी भी काम नहीं करेगा अगर यह बिल्कुल भी कनेक्ट नहीं कर सकता है।
डेविड आर।

आपने तीन अलग-अलग क्लाइंट होस्ट्स का उल्लेख किया है। जो काम नहीं कर रहा है वह संभवतः नेटवर्किंग मुद्दे के कारण कनेक्ट नहीं कर सका है जबकि अन्य कर सकते हैं।
रिचर्ड ई। सिल्वरमैन

मुझे लगा कि मेरी पोस्ट बहुत स्पष्ट थी कि मैं सभी मेजबानों पर ldap.conf फ़ाइल संपादित कर रहा था। जैसे कि जब मैंने फाइल करने के लिए लाइन जोड़ी, तो यह काम कर गया, लेकिन लाइन के बिना यह नहीं हुआ। इस प्रकार, एक कनेक्शन मुद्दा नहीं।
डेविड आर।

जब मैंने आपके पोस्ट को शुरू में पढ़ा, तो यह मेरे लिए स्पष्ट नहीं था, हालांकि मैं देख रहा हूं कि अब आपका क्या मतलब है। वैसे भी, आपके द्वारा जोड़ी गई TLS डिबगिंग जानकारी समस्या को दिखाती है; मैंने फॉलो अप के लिए एक उत्तर जोड़ा है।
रिचर्ड ई। सिल्वरमैन

जवाबों:


9

ldapsearch विश्वसनीय CA प्रमाणपत्रों के अपने स्टोर के लिए / etc / openldap / cacerts में देख रहा है, और यह स्पष्ट रूप से सेट नहीं किया गया है, और इस प्रकार यह प्रमाणपत्र को अस्वीकार कर रहा है क्योंकि यह इसके लिए एक विश्वास श्रृंखला का निर्माण नहीं कर सकता है। यदि ldapsearch OpenSSL का उपयोग कर रहा था, तो उसे "हैशदिर" प्रारूप संग्रह की आवश्यकता होगी, जैसे कि Red Hat "ऑर्टकनफिग" प्रोग्राम, या विश्वसनीय प्रमाणपत्रों की एक फ्लैट सूची के साथ एक एकल फ़ाइल। "Moznss" का संदर्भ बताता है कि यह ldapsearch मोज़िला एनएसएस के खिलाफ बनाया गया है, जिस स्थिति में आपको सर्टिफ़िकेट डीबी (या बेहतर करने के लिए "सर्टिफ़िकेट" का उपयोग करने की आवश्यकता है, इसे सिस्टम एनएसएस सर्टिफिकेट स्टोर पर इंगित करें, यदि एक है) ।

सिस्टम पर जहां यह काम कर रहा है ldapsearch के पास एक वर्किंग सर्टिफिकेट स्टोर होना चाहिए, शायद इसलिए कि OpenLDL के बजाय उन OpenLDAP पैकेजों का निर्माण किया जाता है (या हो सकता है कि वहां एक वर्किंग NSS-style स्टोर उपलब्ध हो)।


2
आह। /etc/openldap/certsवह जगह है जहाँ प्रमाणित स्टोर है। कैचर नहीं। /Etc/openldap/ldap.conf में मैं बदल TLS_CACERTDIR /etc/openldap/cacertsगया TLS_CACERTDIR /etc/openldap/certsऔर मेरे ldapsearch कमांड ने काम करना शुरू कर दिया। धन्यवाद!
डेविड आर।

मेरे पास Ubuntu 16.04 पर स्थापित ldapsearch है, और कोई / etc / openldap निर्देशिका नहीं है।
vcardillo

13

अगर यह TLS प्रमाणपत्र को सत्यापित नहीं कर सकता है तो ldapsearch "LDAP सर्वर से संपर्क नहीं कर सकता" कहेगा। -d1अपने ldapsearch कमांड में जोड़ें , और टीएलएस कनेक्शन विफल हो रहा है और क्यों, इसके बारे में अधिक जानकारी प्राप्त करने के लिए "टीएलएस:" से शुरू होने वाली आउटपुट लाइनों की जांच करें।


मैंने आपके सुझाव के जवाब में अपना प्रश्न संपादित किया। धन्यवाद!
डेविड आर।

8

समाधान आपकी स्थापना पर निर्भर करता है:

  • आप कर रहे हैं एक गैर मान्य प्रमाणपत्र का उपयोग कर , आप इसे विन्यस्त करने स्वीकार मजबूर कर सकते हैं /etc/openldap/ldap.confसाथ

    TLS_REQCERT allow
    

    या

    TLS_REQCERT never
    
  • यदि आप एक वैध प्रमाण पत्र का उपयोग कर रहे हैं, तो शायद आपके ldap इंस्टालेशन को यह पता नहीं है कि विश्वसनीय CA प्रमाणपत्रों की दुकान कहाँ है (संभवतः आपके ओपनएसएसएल इंस्टॉलेशन के आधार पर)। फिर आप इसे स्थान सेट करने और इसके /etc/openldap/ldap.confसाथ कॉन्फ़िगर करने के लिए बल जांचने का प्रयास कर सकते हैं

    TLS_CACERT /etc/openldap/cacert
    TLS_REQCERT demand
    

    /etc/openldap/cacertयह हो सकता है या किसी भी मार्ग में स्थित हो सकता है। इसमें आपके CA की प्रमाणपत्र श्रृंखला होनी चाहिए। यह विश्वसनीय प्रमाणपत्रों की एक सूची के साथ एक एकल फ़ाइल हो सकती है।

नोट पथ ldap प्रदाता पर निर्भर करता है यह हो सकता है /etc/ldapया /etc/openldapया तो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.