يمنحك زميل شهادة CA الخاصة بالمؤسسة. تقدّم Requests وسيطًا اسمه cert. تبدو الاسمين متطابقين، لكنهما يجيبان عن سؤالين مختلفين.

الإعدادالغرض
verifyاختيار مادة الثقة المستخدمة للتحقق من الطرف المقابل
certتقديم شهادة عميل، مع مفتاحها الخاص، عندما يلزم التحقق من هوية العميل

بالنسبة إلى CA اعتراض معتمدة، يمكن لعملية Requests اختيار حزمة CA المقصودة:

response = requests.get(
    'https://example.com/',
    proxies=routes,
    verify='/path/to/approved-ca-bundle.pem',
    timeout=15,
)

هنا routes هو تعيين الوكيل الموجود في التطبيق. يجب أن يسمّي المسار حزمة الثقة الصحيحة القابلة للقراءة لهذا العميل. وهو ليس شهادة موقع تم تنزيلها واختيرت لمجرد فشل الاتصال.

متغير البيئة REQUESTS_CA_BUNDLE مدخل ثقة مدعوم آخر. تحقق من مسار الإرسال الفعلي إذا بدا غير فعّال؛ فقد تغيّر سير عمل الطلبات المجهّزة والإعدادات الصريحة طريقة دمج إعدادات البيئة.

لا ينبغي أن تحتاج إلى المفتاح الخاص لـ CA

شهادة CA العامة هي ما يحتاجه العميل للتعرف على جهة إصدار معتمدة. أما مفتاح التوقيع الخاص بها فهو سرّ قوي يخص طرفًا آخر. ولا ينبغي توزيعه على مستخدمي التطبيق كجزء من إصلاح روتيني لثقة الوكيل.

قد تظل شهادة العميل مطلوبة من وجهة معينة أو من علاقة TLS أخرى مُعدّة بشكل منفصل. هذا شرط منفصل، وليس شيئًا يُستنتج من كل خطأ في التحقق من الشهادة.

عند ظهور الخطأ التالي، سمِّ العملية: تحميل ملف CA، أو التحقق من شهادة الطرف المقابل، أو تقديم هوية العميل. ونقل ملف بين verify وcert حتى تتغير الرسالة ليس طريقة موثوقة لاختيار دوره.

مقالات ذات صلة