কিছু সিস্টেম ldaps এর মাধ্যমে ldap এর সাথে সংযোগ স্থাপন করতে পারে না, তবে অন্যরা পারেন, এটি কি ওয়াইল্ডকার্ড শংসাপত্র?


15

আমার উপন্যাস ইডিটেকটারি 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)

এখন, আমি যে শংসাপত্রটি আমদানি করেছি তা হ'ল ডিজিগের্ট থেকে কেনা ওয়াইল্ডকার্ড শংসাপত্র। আমার সহকর্মী কিছু প্রতিবেদন পেয়েছেন যা ইঙ্গিত করে যে কিছু সিস্টেমে ওয়াইল্ডকার্ডগুলির সাথে সমস্যা রয়েছে।

তো, কি ওয়াইল্ডকার্ড সার্টকে দোষ দেওয়া যায়? যদি তা হয় তবে আমি কীভাবে এটি সংশোধন করব?

যদি এটি ওয়াইল্ডকার্ড সার্ট না হয় তবে এটি কী?

অ্যান্ড্রু শুলম্যানের পরামর্শ অনুসরণ করে আমি -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)

যা বলে তা থেকে, সেন্টোস ডিজিকার্টকে বিশ্বাস করে না? বা সেন্টোসের বিশ্বস্ত ইস্যুকারীদের একটি তালিকা নেই?


1
"এলডিএপি সার্ভারের সাথে যোগাযোগ করতে পারে না" এমন আরও শোনায় যেমন সার্ভারটি সেই ক্লায়েন্ট মেশিন থেকে সহজভাবে পৌঁছানো যায় না। আপনি কি সত্যই এটির সাথে সংযোগ স্থাপন করতে পারবেন তা আগে পরীক্ষা করে দেখেছেন? যেমন telnet ldapserver ldapsবা openssl s_client -connect ldapserver:636
রিচার্ড ই সিলভারম্যান

হ্যাঁ, আমি নিশ্চিত হয়েছি যে এটি সার্ভারের সাথে সংযোগ করতে পারে। সর্বোপরি, এটি কখনই সংযুক্ত না হতে পারলে এটি কখনই কাজ করবে না।
ডেভিড আর

আপনি তিনটি পৃথক ক্লায়েন্ট হোস্ট উল্লেখ করেছেন। যেটি কাজ করছে না সে সম্ভবত কোনও নেটওয়ার্কিং সমস্যার কারণে সংযোগ স্থাপন করতে না পারত যখন অন্যরা তা করতে পারে।
রিচার্ড ই। সিলভারম্যান

আমি ভেবেছিলাম আমার পোস্টটি বেশ পরিষ্কার ছিল যে আমি সমস্ত হোস্টে ldap.conf ফাইলটি সম্পাদনা করছি। আমি যখন ফাইলটিতে লাইন যুক্ত করেছি, এটি কাজ করেছিল, তবে লাইনটি ছাড়া এটি হয়নি। সুতরাং, সংযোগ সমস্যা নয়।
ডেভিড আর

আপনার পোস্টটি প্রাথমিকভাবে পড়লে আমার কাছে তা স্পষ্ট ছিল না, যদিও এখন আপনি কী বোঝাতে চেয়েছি তা আমি দেখতে পাচ্ছি। যাইহোক, আপনার যুক্ত করা টিএলএস ডিবাগিং তথ্য সমস্যাটি দেখায়; আমি অনুসরণ করার জন্য একটি উত্তর যুক্ত করেছি।
রিচার্ড ই সিলভারম্যান

উত্তর:


9

ldapsearch তার বিশ্বাসযোগ্য সিএ শংসাপত্রগুলির সঞ্চয় করার জন্য / ইত্যাদি / ওপেনল্ডপ / ক্যাসার্টের সন্ধান করছে এবং এটি আপাতভাবে সেট আপ করা হয়নি এবং সুতরাং এটি শংসাপত্রটিকে প্রত্যাখ্যান করছে যেহেতু এটির জন্য এটি একটি বিশ্বস্ত চেইন তৈরি করতে পারে না। যদি ldapsearch ওপেনএসএসএল ব্যবহার করে থাকে তবে এটির জন্য যেমন "হ্যাশডির" ফর্ম্যাট সংগ্রহ প্রয়োজন যেমন রেড হ্যাট "অ্যাথকনফিগ" প্রোগ্রাম, বা বিশ্বস্ত শংসাপত্রের ফ্ল্যাট তালিকা সহ একটি ফাইল। এখানে "মোজনেস" -এর উল্লেখটি নির্দেশ করে যে এই এলডিপসার্কটি মজিলা এনএসএসের বিপরীতে নির্মিত হয়েছে, সেক্ষেত্রে আপনাকে সার্ট ডিবি তৈরি করতে "সার্টিটিল" ব্যবহার করা প্রয়োজন (বা আরও ভাল, এটি সিস্টেম এনএসএস শংসাপত্রের দোকানে চিহ্নিত করুন, যদি সেখানে থাকে) ।

যে সিস্টেমে এটি কাজ করছে ldapsearch এর অবশ্যই একটি ওয়ার্কিং সার্টিফিকেট স্টোর থাকতে হবে কারণ সম্ভবত ওপেনলডিএপ প্যাকেজগুলি ওপেনএসএসএল এর বিপরীতে নির্মিত হয়েছে (অথবা সেখানে সেখানে কোনও এনএসএস-স্টাইলের একটি কার্যকরী উপলব্ধ রয়েছে)।


2
আহ। /etc/openldap/certsযেখানে শংসাপত্রের দোকান। ক্যাসর্ট নয় /Etc/openldap/ldap.conf আমি পরিবর্তিত TLS_CACERTDIR /etc/openldap/cacertsকরতে TLS_CACERTDIR /etc/openldap/certsএবং আমার ldapsearch কমান্ড কাজ শুরু করে। ধন্যবাদ!
ডেভিড আর

আমি উবুন্টু 16.04 এ ldapsearch ইনস্টল করেছি, এবং কোনও / ইত্যাদি / ওপেনড্যাপ ডিরেক্টরি নেই।
ভিকার্ডিলো

13

ldapsearch টিএলএস শংসাপত্রটি যাচাই করতে না পারলে "এলডিএপি সার্ভারের সাথে যোগাযোগ করতে পারে না" বলবে। যোগ -d1আপনার ldapsearch কমান্ড, এবং চেক আউটপুট লাইন যে দিয়ে শুরু "TLS এর:" TLS এর সংযোগ ব্যর্থ এবং কেন হয় কিনা সম্পর্কে আরও তথ্যের জন্য।


আপনার পরামর্শের জবাবে আমি আমার প্রশ্ন সম্পাদনা করেছি। ধন্যবাদ!
ডেভিড আর

8

সমাধান আপনার ইনস্টলেশন উপর নির্ভর করে:

  • আপনি যদি একটি বৈধ শংসাপত্র ব্যবহার করছেন , আপনি এটির /etc/openldap/ldap.confসাথে এটি কনফিগার করার জন্য জোর করে নিতে পারেন

    TLS_REQCERT allow
    

    অথবা

    TLS_REQCERT never
    
  • আপনি যদি কোনও বৈধ শংসাপত্র ব্যবহার করছেন সম্ভবত আপনার এলডিএপ ইনস্টলিশনটি জানেন না যে বিশ্বস্ত সিএ শংসাপত্রের সঞ্চয় কোথায় (সম্ভবত আপনার ওপেনএসএসএল ইনস্টলেশনের উপর নির্ভর করে)। তারপরে আপনি এটির অবস্থান সেট করার চেষ্টা করতে পারেন এবং এটির /etc/openldap/ldap.confসাথে চেক কনফিগারেশন জোর করতে পারেন

    TLS_CACERT /etc/openldap/cacert
    TLS_REQCERT demand
    

    /etc/openldap/cacertএটি হতে পারে বা যে কোনও পথে অবস্থিত হতে পারে। এটিতে অবশ্যই আপনার সিএর শংসাপত্র শৃঙ্খলা থাকতে হবে এটি বিশ্বস্ত শংসাপত্রের ফ্ল্যাট তালিকা সহ একক ফাইল হতে পারে।

নোটের পাথ ldap সরবরাহকারীর উপর নির্ভর করে। এটা /etc/ldapবা অন্য কিছু হতে পারে /etc/openldap

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.