لماذا يخف حليقة العثور على شهادة SSL تعمل بشكل متقطع؟

StackOverflow https://stackoverflow.com/questions/9433101

سؤال

أعتقد أن لدي الآن فهم جيد لماذا تحتاج إما إلى حزمة شهادة SSL عند سحب المحتوى من API HTTPS مثل Facebook.لكن سؤالي هو: لماذا يعمل هذا في بعض الأحيان بدون الشهادة وبعض الآخرين لا؟ يبدو لي أن Libcurl لديها وسيلة للتغلب على هذه المشكلة بمفردها.

أي شخص يعرف لماذا أو كيف يحدث هذا؟أي شخص لديه نفس التجربة؟

هل كانت مفيدة؟

المحلول

سلوك حليقة مع شهادات SSL يعتمد على خيار Curlopt_ssl_verifypeer. على افتراض أنك تستخدم PHP، يمكنك استخدام الوظيفة curl_setopt لتغيير قيمة هذا الخيار.

لدي معرفة سطحية فقط من SSL ولكن يبدو أن حليقة يتصرف بالطريقة التالية: 0 لا يعني عدم التحقق، 1 شيكات إذا كانت الشهادة شرعية، وفحص 2 أيضا يتحقق أيضا إذا تم إصدار الشهادة إلى اسم المضيف الصحيح.

يمكنك "إيقاف الأخطاء المزعجة" عن طريق إعداد curlopt_ssl_verifypeer إلى 0، ولكن هذا يعني أنه لا يمكنك التأكد من أن لديك اتصال بالخادم الصحيح، حيث قد يقوم أي شخص محاكاة ساخرة DNS . لذلك القيام بذلك أمر خطير للغاية.

الرسمي Facebook PHP SDK يوفر شهادته الخاصة باستخدام curlopt_cainfo ، ولكن فقط عندما لا يمكن حليقة التحقق من صحة الشهادة بمفردها. لا أعرف لماذا سيجعل مطورو Facebook SDK هذا الشرط؛ ربما لأن شهادات القراءة قد تكون مكلفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top