كيفية اقتران cn في ssl cert من pyOpenSSL verify_cb إلى مأخذ توصيل تم إنشاؤه

أنا جديد قليلا ل pyOpenSSL. أحاول معرفة كيفية ربط المقبس الذي تم إنشاؤه إلى شهادة SSL. يتم الاتصال بـ verify_cb والذي يمنحني حق الوصول إلى الشهادة وشهادة conn ولكن كيف أقوم بربط هذه الأشياء عند حدوث ذلك:

cli، addr = self.server.accept ()

0
وأضاف
الآراء: 1
هل ترغب في قبول الإجابة؟ :)
وأضاف المؤلف Jean-Paul Calderone, مصدر

1 إجابة

بعد اكتمال المصافحة ، يمكنك الحصول على شهادة العميل. على الرغم من توفر شهادة العميل أيضًا في التحقق من الاسترداد (verify_cb) ، فلا يوجد أي سبب لمحاولة عمل أي شيء جانباً من التحقق من الشهادة في ذلك الاستدعاء. من الأفضل إجراء إعداد خرائط خاصة بالتطبيقات بعد نجاح عملية تبادل الإشارات بنجاح. لذلك ، ضع في اعتبارك استخدام مثيل OpenSSL.SSL.Connection الذي تم إرجاعه بواسطة أسلوب القبول للحصول على الشهادة (ومن هناك ، commonName) وقم بإقرانه بجهاز الاتصال في هذه النقطة. فمثلا،

client, clientAddress = self.server.accept()
client.do_handshake()
commonNamesToConnections[client.get_peer_certificate().commonName] = client

قد ترغب في التحقق من التعيين للتأكد من عدم الكتابة فوق أي اتصال موجود (ربما باستخدام قائمة اتصالات بدلاً من مجرد تعيين كل اسم شائع إلى واحد). وبالطبع تحتاج إلى إزالة الإدخالات عند فقد الاتصالات.

يجبر استدعاء `do_handshake´ المصافحة على أن يحدث بالفعل. بدون هذا ، سيحدث المصافحة عند نقل بيانات التطبيق أولاً عبر الاتصال. هذا جيد ، لكنه سيجعل إعداد هذا التعقيد أكثر تعقيدًا بعض الشيء.

0
وأضاف