সুতরাং এটিই আমি সিএ সার্টের নাম হিসাবে দেখছি:
depth=1 /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at //www.verisign.com/rpa (c)10/CN=VeriSign Class 3 International Server CA - G3
verify error:num=20:unable to get local issuer certificate
verify return:0
উপরের আমার দ্বিতীয় চেষ্টাতে-শোকার্টগুলি করার পরে আমি যে শংসাপত্রটি আমদানি করেছিলাম তার নাম। আমি কীস্টোরে শংসাপত্রগুলি তালিকাভুক্ত করেছি:
$JAVA_HOME/bin/keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
আমি সেখানে সিএ সার্টিফিকেটটি দেখছি।
Alias name: versign2006
Creation date: Jan 21, 2011
Entry type: trustedCertEntry
Owner: CN=VeriSign Class 3 International Server CA - G3, OU=Terms of use at www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Serial number: 641be820ce020813f32d4d2d95d67e67
Valid from: Sun Feb 07 19:00:00 EST 2010 until: Fri Feb 07 18:59:59 EST 2020
Certificate fingerprints:
MD5: BA:B0:65:B4:3B:9C:E8:40:30:21:7D:C5:C6:CD:3F:EB
SHA1: B1:8D:9D:19:56:69:BA:0F:78:29:51:75:66:C2:5F:42:2A:27:71:04
ওপেনসেল সার্ভারের সাথে যে কী-স্টোরটি ব্যবহার করছি তা নিশ্চিত করার জন্য, আমি-CAfile যুক্তিটি ব্যবহার করছি:
openssl s_client -connect the.server.edu:3269 -CAfile $JAVA_HOME/jre/lib/security/cacerts
সিএর জন্য জাভা কীস্টোরটির পাসওয়ার্ড রয়েছে তা জেনে আমি পাস-পাস: পাসওয়ার্ড বিকল্পটি এভাবে ব্যবহার করার চেষ্টা করেছি:
openssl s_client -connect the.server.edu:3269 -CAfile $JAVA_HOME/jre/lib/security/cacerts -pass pass:changeit
কিন্তু এটিও কার্যকর হয়নি।
এ সম্পর্কে মজার বিষয় হ'ল ক্যা্যাসার্টস ফাইলটির একটি পাসওয়ার্ড রয়েছে এবং ওপেনসেল অভিযোগ করছে না যে এটি ক্যাসর্ট ফাইলটি পড়তে পারে না। এটাই আমার কাছে মজাদার মনে হচ্ছে। এটি বা অন্য কিছু কি একটি ঘন্টা বাজায়?
ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,'./ca_issuer_cert.pem')
পরে, আমি প্রত্যাশা অনুযায়ী STARTTLS (এলডিএপি পোর্টের মধ্যে 389) ব্যবহার করতে সক্ষম হয়েছি।