كيفية التعامل مع شهادة SSL في Selenium
⚡ ملخص ذكي
توقف أخطاء شهادة SSL Selenium اختبار اللحظة التي يرفض فيها المتصفح شهادة غير موثوقة أو منتهية الصلاحية، لذلك يحتاج كل برنامج نصي WebDriver إلى إمكانية خاصة بالمتصفح تقبل الشهادة وتسمح باستمرار التشغيل الآلي.
شهادة SSL في Selenium
SSL (طبقة المقابس الآمنة) هو بروتوكول أمان قياسي لإنشاء اتصال آمن بين الخادم والعميل الذي هو المتصفح.
تحمي شهادة SSL البيانات المنقولة بين الخادم وتطبيق العميل بتشفير قوي وتوقيع رقمي. يقوم مالك الموقع بتثبيت إما شهادة SSL أو شهادة توقيع رمز.
فوائد شهادة SSL
هناك عدد من الفوائد لاستخدام شهادة SSL مثل،
- يمكن للمرء زيادة ثقة المستخدمين والعملاء من أجل تعزيز نمو الأعمال بسرعة
- تساعد هذه الشهادات على تأمين المعاملات عبر الإنترنت والمعلومات الحساسة للعملاء مثل بيانات بطاقة الائتمان/بطاقة الخصم وما إلى ذلك.
- تميل شهادة التوقيع إلى الحصول على الحد الأقصى لعدد التنزيلات والمراجعات الجيدة من المستخدمين.
تبدأ مواقع الويب الآمنة بتقنية SSL بـ https:// ويمكنك رؤية رمز القفل أو شريط العناوين الأخضر إذا تم إنشاء الاتصال بشكل آمن.
على سبيل المثال، إذا كنت تريد إجراء بعض المعاملات عبر شبكة الخدمات المصرفية أو ترغب في شراء الهاتف الهاتف من خلال موقع التجارة الإلكترونية مثل Flipkart أو Amazon.
ماذا يحدث بين متصفح الويب والخادم
- يحاول المتصفح الاتصال بموقع ويب مؤمن باستخدام SSL. يطلب المتصفح من خادم الويب تعريف نفسه
- يرسل الخادم للمتصفح نسخة من شهادة SSL الخاصة به
- يتحقق المتصفح مما إذا كانت شهادة SSL أصلية أم لا. إذا كان الأمر كذلك، فإنه يرسل رسالة إلى الخادم
- يرسل الخادم إقرارًا موقعًا رقميًا لبدء جلسة مشفرة باستخدام طبقة المقابس الآمنة (SSL).
- تتم مشاركة البيانات المشفرة بين الخادم والمتصفح
تنتقل أرقام البطاقات وبيانات اعتماد تسجيل الدخول عبر تلك الجلسة، لذلك يجب أن يظل التبادل مشفرًا من البداية إلى النهاية ولا يمكن اعتراضه.
على سبيل المثال، يؤكد القفل وشريط العنوان أدناه قبول الشهادة.
- النوع https://netbanking.hdfcbank.com/netbanking/ .
- هاهنا.
- سيظهر لك شريط العناوين باللون الأخضر في المتصفح كما يلي:-
كيف تقوم شهادة SSL بإنشاء اتصال آمن
الرسم البياني أدناه tracتبدأ العملية بالمصافحة، وتشرح الخطوات المرقمة التي تليها كل عملية تبادل.
- المتصفح يرسل طلب HTTPS إلى الخادم.
- الآن يجب على الخادم توفير بعض التعريفات للمتصفح لإثبات أنه موثوق به. ويمكن القيام بذلك عن طريق إرسال نسخة من شهادة SSL الخاصة به إلى المتصفح.
- يحتوي كل متصفح على قائمة خاصة به من مراجع التصديق الموثوق بها. يتحقق المتصفح من جذر الشهادة مقابل قائمة المراجع المصدقة الموثوقة ومن أن الشهادة غير منتهية الصلاحية وغير ملغاة وأن الاسم الشائع صالح لموقع الويب الذي يتصل به.
- إذا كان المتصفح يثق في الشهادة، فسيتم إنشاء جلسة مشفرة بين الخادم والمتصفح.
- يمكن للخادم والمتصفح إرسال رسائل مشفرة
أنواع شهادات SSL
يستخدم المتصفح والخادم آلية شهادة SSL ليتمكنوا من إنشاء اتصال آمن. يتضمن هذا الاتصال التحقق من ثلاثة أنواع من الشهادات.
- جذر
- متوسط
- شهادة الخادم
عملية الحصول على شهادة SSL
تتضمن عملية الحصول على شهادة SSL الخطوات التالية:-
- أولاً، يجب عليك إنشاء طلب CSR (إنشاء طلب توقيع الشهادة).
- يقوم طلب CSR بإنشاء ملف بيانات CSR، والذي يتم إرساله إلى جهة إصدار شهادة SSL المعروفة باسم CA (المرجع المصدق).
- يستخدم CA ملفات بيانات CSR لإنشاء شهادة SSL لخادمك.
- بعد الحصول على شهادة SSL، يجب عليك تثبيتها على الخادم الخاص بك.
- يلزم أيضًا تثبيت شهادة وسيطة تربط شهادة SSL الخاصة بك بشهادة جذر CA.
الصورة أدناه تمثل جميع الشهادات الثلاثة- شهادة الجذر والوسيطة والخادم.
كيف يتم التحقق من شهادات SSL
يعمل SSL من خلال مجموعة من البرامج وروتين التشفير/فك التشفير الموجود على كمبيوتر خادم الويب ومتصفح خادم الويب.
تحتوي شهادة SSL بشكل أساسي على المعلومات أدناه.
- الموضوع وهو هوية صاحب الموقع.
- معلومات الصلاحية - مفتاح عام وخاص.
المفتاح الخاص والمفتاح العام هما مفتاحان تشفير (رقمان) مرتبطان بشكل فريد. لا يمكن فك تشفير أي شيء مشفر بواسطة المفتاح العام إلا بواسطة المفتاح الخاص. يعرض المتصفح هذه الحقول عند فحص الشهادة، كما هو موضح أدناه.
عندما لا يتم إنشاء اتصال آمن بين الخادم والعميل بسبب الشهادة، سيتم إظهار خطأ شهادة SSL التالي.
أنواع أخطاء شهادة SSL
لنفترض أنك كتبت طلب HTTPS، فأجابك المتصفح برسالة "هذا الاتصال غير موثوق" أو "شهادة أمان الموقع غير موثوقة". لم يتمكن المتصفح من إنشاء اتصال آمن باستخدام الشهادة المُقدمة، لذا توقف وطلب من المستخدم اتخاذ الإجراء المناسب.
قد تكون أنواع الأخطاء التي من المحتمل أن تراها بسبب الشهادة في متصفحات مختلفة مثل هذا إلى حد ما
- الحرائقFox - هذا الاتصال غير موثوق به
- Google Chrome – لا يُعتمد على أمان هذا الموقع
- إنترنت إكسبلورر (آي إي) - شهادة الأمان المقدمة من هذا الموقع لم تكن موثوقة من قبل مرجع مصدق موثوق به (CA)
تُظهر لقطة الشاشة أدناه الفراغ الذي تُنتجه شهادة غير موثوقة.
كيفية التعامل مع خطأ شهادة SSL باستخدام Selenium برنامج تشغيل الويب
افترض أن نص الاختبار يؤدي ذلك إلى صفحة "اتصال غير موثوق به" المذكورة أعلاه. يجب تعديل البرنامج النصي بحيث يعالج استثناء SSL تلقائيًا، من خلال الأتمتة.
يعتمد هذا التغيير على نسخة المتصفح المستخدمة، وهنا تبرز أهمية الإمكانيات المطلوبة. تعمل الإمكانيات المطلوبة على تهيئة نسخة برنامج التشغيل الخاصة بـ Selenium برنامج تشغيل الويب، بما في ذلك برنامج تشغيل Chrome، Firefoxبرنامج التشغيل ومتصفح الإنترنت إكسبلورر.
يمكن إضافة الخطوات التالية إلى Selenium نص برمجي لإزالة حالة "الاتصال غير الموثوق به" لكل متصفح.
⚠️ Selenium ملاحظة 4: تمت إزالة فئة DesiredCapabilities في Selenium 4. أصبحت فئات خيارات المتصفح الآن تحمل نفس الإعداد من خلال إمكانية واحدة تابعة لـ W3C، قبول الشهادات غير الآمنة.
| المتصفح | Selenium فئة شنومكس | اتصل |
|---|---|---|
| الكروم | خيارات Chrome | setAcceptInsecureCerts(true) |
| Firefox | Firefoxمزيد من الخيارات | setAcceptInsecureCerts(true) |
| حافة | خيارات الحافة | setAcceptInsecureCerts(true) |
| سفاري | Javascriptالمنفذ | نص تجاوز مؤقت |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
معالجة أخطاء شهادة SSL في Firefox
لمعالجة خطأ شهادة SSL في Firefox، نحن بحاجة إلى استخدام القدرات المطلوبة ل Selenium Webdriver واتبع الخطوات التالية.
الخطوة 1) أولاً، نحتاج إلى إنشاء جديد Firefox البيانات الشخصية يقول "ملفي".
الخطوة 2) الآن قم بالوصول إلى myProfile في البرنامج النصي على النحو التالي وقم بإنشاء ملف Firefoxكائن الملف الشخصي.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
الخطوة 3) الآن نحتاج إلى تعيين خصائص "setAcceptUntrustedCertificates" و "setAssumeUntrustedCertificateIssuer" في Fire Fox الملف الشخصي.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
الخطوة 4) الآن استخدم النارFox الملف الشخصي في النارFox كائن السائق.
WebDriver driver = new FirefoxDriver (ffProfile)
ملاحظة: "setAcceptUntrustedCertificates" و "setAssumeUntrustedCertificateIssuer"هي قدرات للتعامل مع أخطاء الشهادات في متصفحات الويب."
⚠️ ملاحظة حول الإصدار: يستهدف الكود المستند إلى الملف الشخصي أعلاه Selenium و2 Selenium 3. على Selenium 4- يتم إرفاق ملف تعريف من خلال Firefoxالخيارات، و Firefox يقبل الشهادات غير الآمنة افتراضياً.
معالجة أخطاء شهادة SSL في Chrome
لمعالجة خطأ SSL في Chrome، يقبل كائن DesiredCapabilities أدناه كل شهادة SSL، لذلك لا يرى المستخدم أي تحذير بشأن الشهادة أثناء التشغيل.
نحتاج إلى إنشاء مثيل لفئة DesiredCapabilities على النحو التالي: -
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ ملاحظة حول الإصدار: ينتمي نوع القدرة ACCEPT_SSL_CERTS إلى بروتوكول JSON Wire القديم. استبدله بمقتطف ChromeOptions الموضح سابقًا عند التشغيل Selenium 4.
معالجة أخطاء شهادة SSL في IE
على عكس التعامل مع شهادات SSL في متصفح Chrome و Firefoxفي متصفح إنترنت إكسبلورر، قد تحتاج إلى التعامل مع الأمر باستخدام جافا سكريبت.
للتعامل مع شهادة SSL في متصفح إنترنت إكسبلورر، يمكنك التعامل مع هذا الموقف بطريقتين.
الطريقة الثانية) انقر على الرابط "متابعة إلى هذا الموقع (غير مُوصى به)" الموجود في النافذة البينية. يحمل هذا الرابط المعرّف "overridelink"، والذي يمكنك التأكد منه في لوحة HTML التي يتم فتحها باستخدام F12، كما هو موضح في لقطة الشاشة أدناه.
انقر على الرابط باستخدام طريقة driver.navigate() مع Javaالنص كما يلي:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
الطريقة الثانية) الطريقة الثانية تشبه إلى حد كبير كود معالجة SSL الخاص بمتصفح كروم.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
سيساعد الكود أعلاه في معالجة خطأ شهادة SSL في IE.
⚠️ ملاحظة حول الإصدار: تم إيقاف دعم Internet Explorer 11 في يونيو 2022. قم بتشغيل نفس السيناريو ضد Microsoft Edge باستخدام EdgeOptions، أو تشغيل Edge في وضع IE حيث لا يزال التطبيق القديم يتطلب ذلك.





