কার্ল: এসএসএল শংসাপত্রের সমস্যা, সিএ সার্টটি ঠিক আছে কিনা তা যাচাই করুন
07 এপ্রিল 2006
কার্ল দিয়ে সুরক্ষিত ইউআরএল খোলার সময় আপনি নিম্নলিখিত ত্রুটিটি পেতে পারেন:
এসএসএল শংসাপত্রের সমস্যা, সিএ সার্টটি ঠিক আছে কিনা তা যাচাই করুন
ত্রুটি কেন এবং এটি সম্পর্কে আপনার কী করা উচিত তা আমি ব্যাখ্যা করব।
ত্রুটি থেকে মুক্তি পাওয়ার সহজ উপায়টি আপনার স্ক্রিপ্টে নিম্নলিখিত দুটি লাইন যুক্ত করা হবে। এই সমাধানটি একটি সুরক্ষা ঝুঁকি পোষণ করে।
//WARNING: this would prevent curl from detecting a 'man in the middle' attack
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
এই দুটি পরামিতি কী করে তা দেখুন। ম্যানুয়ালটি উদ্ধৃত করা হচ্ছে।
সিআরএল পিয়ার শংসাপত্রে একটি সাধারণ নামের অস্তিত্ব পরীক্ষা করতে CURLOPT_SSL_VERIFYHOST : 1। 2 একটি সাধারণ নামের অস্তিত্ব পরীক্ষা করতে এবং এটি সরবরাহ করা হোস্টনামের সাথে মেলে কিনা তা যাচাই করে নিন।
CURLOPT_SSL_VERIFYPEER : পিএআর এর শংসাপত্র যাচাই করা থেকে CURL থামাতে মিথ্যা। এর বিরুদ্ধে যাচাইয়ের জন্য বিকল্প শংসাপত্রগুলি CURLOPT_CAINFO বিকল্পের সাথে নির্দিষ্ট করা যেতে পারে বা একটি সার্টিফিকেট ডিরেক্টরি CURLOPT_CAPATH বিকল্পের সাথে নির্দিষ্ট করা যেতে পারে। CURLOPT_SSL_VERIFYHOST এর ক্ষেত্রে সত্য বা মিথ্যা প্রয়োজন হতে পারে যদি CURLOPT_SSL_VERIFYPEER অক্ষম থাকে (এটি ডিফল্ট 2 হয়)। CURLOPT_SSL_VERIFYHOST 2 এ সেট করা (এটি পূর্বনির্ধারিত মান) গ্যারান্টি দেয় যে আপনাকে যে শংসাপত্র উপস্থাপন করা হচ্ছে তা দূরবর্তী সংস্থান অ্যাক্সেস করতে আপনি যে ইউআরএন ব্যবহার করছেন তার সাথে মিল রয়েছে 'সাধারণ নাম'। এটি স্বাস্থ্যকর চেক তবে এটি আপনার প্রোগ্রামটি ক্ষয়িষ্ণু হওয়ার গ্যারান্টি দেয় না।
'মাঝখানে মানুষ' লিখুন
পরিবর্তে আপনার প্রোগ্রামটি অন্য সার্ভারের সাথে কথা বলে ভুল পথে চালিত হতে পারে। এটি ডিএনএস বা আরপ বিষের মতো একাধিক প্রক্রিয়ার মাধ্যমে অর্জন করা যেতে পারে (এটি অন্য দিনের গল্প)) অনুপ্রবেশকারী আপনার প্রোগ্রামটি প্রত্যাশিত একই 'কমন নাম' দিয়ে একটি শংসাপত্রে স্ব-স্বাক্ষর করতে পারে। যোগাযোগটি এখনও এনক্রিপ্ট করা হবে তবে আপনি আপনার গোপনীয়তা একজন ভ্রান্ত ব্যক্তিকে দিচ্ছেন। এই ধরণের আক্রমণকে 'মাঝের মানুষ' বলা হয়
'মাঝখানে মানুষ' পরাজিত
আচ্ছা, আমাদের কাছে যে শংসাপত্র উপস্থাপন করা হচ্ছে তা সত্যের পক্ষে ভাল যাচাই করতে হবে। আমরা যুক্তিসঙ্গত * বিশ্বাসের সাথে এটির তুলনা করে এটি করি।
যদি রিমোট রিসোর্সটি মূল সিএর মতো ভেরিজাইন, জিও ট্রাস্ট এট আল এর একটি দ্বারা প্রদত্ত শংসাপত্রের দ্বারা সুরক্ষিত থাকে তবে আপনি মজিলার সিএ শংসাপত্র বান্ডেলের সাথে নিরাপদে তুলনা করতে পারেন যা আপনি http://curl.haxx.se/docs/caextract থেকে পেতে পারেন
.html
cacert.pem
আপনার সার্ভারের কোথাও ফাইলটি সংরক্ষণ করুন এবং আপনার স্ক্রিপ্টে নিম্নলিখিত বিকল্পগুলি সেট করুন।
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem");