SSL प्रमाणपत्र को कैसे संभालें? Selenium

⚡ स्मार्ट सारांश

एसएसएल प्रमाणपत्र त्रुटियां एक प्रक्रिया को रोकती हैं। Selenium जैसे ही कोई ब्राउज़र किसी अविश्वसनीय या समाप्त हो चुके प्रमाणपत्र को अस्वीकार करता है, उसी क्षण का परीक्षण करें, इसलिए प्रत्येक वेबड्राइवर स्क्रिप्ट को एक ब्राउज़र-विशिष्ट क्षमता की आवश्यकता होती है जो प्रमाणपत्र को स्वीकार करती है और स्वचालन को जारी रखने देती है।

  • 🔘 परिभाषा: एसएसएल ब्राउज़र और सर्वर के बीच के ट्रैफ़िक को एन्क्रिप्ट करता है, और प्रमाणपत्र सर्वर की पहचान को साबित करता है।
  • ️ त्रुटि उत्पन्न करने वाला कारक: ब्राउज़र अविश्वसनीय, समाप्त हो चुके, निरस्त या स्व-हस्ताक्षरित प्रमाणपत्रों को अवरुद्ध कर देते हैं और एक चेतावनी पृष्ठ प्रदर्शित करते हैं।
  • ✅ Firefox: A Firefox ड्राइवर शुरू होने से पहले प्रोफ़ाइल setAcceptUntrustedCertificates और setAssumeUntrustedCertificateIssuer को सेट करती है।
  • 🧪 क्रोम: ACCEPT_SSL_CERTS के साथ DesiredCapabilities प्रमाणपत्र स्वीकार करता है Selenium 2 और Selenium 3.
  • ️ इंटरनेट एक्स्प्लोरर: A Javaस्क्रिप्ट में ओवरराइडलिंक एलिमेंट पर क्लिक करने से चेतावनी पृष्ठ स्किप हो जाता है।
  • ⚠️ Selenium 4: ChromeOptions पर setAcceptInsecureCerts सेट करें, FirefoxOptions या EdgeOptions, DesiredCapabilities की जगह लेता है।

SSL प्रमाणपत्र को कैसे संभालें? Selenium

SSL प्रमाणपत्र Selenium

एसएसएल (सिक्योर सॉकेट लेयर) सर्वर और क्लाइंट (जो एक ब्राउज़र है) के बीच सुरक्षित कनेक्शन स्थापित करने के लिए एक मानक सुरक्षा प्रोटोकॉल है।

एसएसएल प्रमाणपत्र सर्वर और क्लाइंट एप्लिकेशन के बीच डेटा के आदान-प्रदान को मजबूत एन्क्रिप्शन और डिजिटल हस्ताक्षर के साथ सुरक्षित करता है। साइट का स्वामी या तो एसएसएल प्रमाणपत्र या कोड साइनिंग प्रमाणपत्र स्थापित करता है।

एसएसएल प्रमाणपत्र के लाभ

SSL प्रमाणपत्र का उपयोग करने के कई लाभ हैं जैसे,

  • व्यवसाय की वृद्धि को तेजी से बढ़ाने के लिए अपने उपयोगकर्ताओं और ग्राहकों का विश्वास बढ़ाया जा सकता है
  • ये प्रमाणपत्र ऑनलाइन लेनदेन और ग्राहकों की संवेदनशील जानकारी जैसे क्रेडिट-कार्ड/डेबिट-कार्ड डेटा आदि को सुरक्षित रखने में मदद करते हैं।
  • हस्ताक्षर प्रमाणपत्र को अधिकतम संख्या में डाउनलोड और उपयोगकर्ताओं से अच्छी समीक्षा मिलती है।

SSL-सुरक्षित वेबसाइटें निम्न से शुरू होती हैं https:// और यदि कनेक्शन सुरक्षित रूप से स्थापित है तो आप एक लॉक आइकन या हरा पता बार देख सकते हैं।

उदाहरण के लिए, यदि आप नेट बैंकिंग के माध्यम से कुछ लेन-देन करना चाहते हैं या कोई खरीदारी करना चाहते हैं मोबाइल ई-कॉमर्स साइट जैसे फ्लिपकार्ट या अन्य माध्यमों से फोन करें Amazon.

वेब ब्राउज़र और सर्वर के बीच क्या होता है

  1. ब्राउज़र SSL से सुरक्षित वेबसाइट से कनेक्ट होने का प्रयास करता है। ब्राउज़र वेबसर्वर से खुद को पहचानने का अनुरोध करता है
  2. सर्वर ब्राउज़र को अपने एसएसएल प्रमाणपत्र की एक प्रति भेजता है
  3. ब्राउज़र यह सत्यापित करता है कि SSL प्रमाणपत्र वास्तविक है या नहीं। यदि ऐसा है, तो यह सर्वर को एक संदेश भेजता है
  4. सर्वर SSL एन्क्रिप्टेड सत्र शुरू करने के लिए एक डिजिटल हस्ताक्षरित पावती भेजता है
  5. एन्क्रिप्टेड डेटा सर्वर और ब्राउज़र के बीच साझा किया जाता है

कार्ड नंबर और लॉगिन क्रेडेंशियल उस सेशन के दौरान भेजे जाते हैं, इसलिए आदान-प्रदान को शुरू से अंत तक एन्क्रिप्टेड रहना पड़ता है और इसे इंटरसेप्ट नहीं किया जा सकता है।

उदाहरण के लिए, नीचे दिया गया ताला और एड्रेस बार इस बात की पुष्टि करते हैं कि प्रमाणपत्र स्वीकार कर लिया गया है।

  1. प्रकार https://netbanking.hdfcbank.com/netbanking/ .
  2. मारो मारो।
  3. आपको ब्राउज़र में नीचे दिए अनुसार एक हरे रंग का एड्रेस बार दिखाई देगा:-

ब्राउज़र में हरे रंग की एड्रेस बार, HDFC नेट बैंकिंग पेज के लिए जो SSL से सुरक्षित है।

SSL प्रमाणपत्र सुरक्षित कनेक्शन कैसे बनाता है?

नीचे दिया गया आरेख tracइसमें हाथ मिलाना शामिल है, और इसके बाद आने वाले क्रमांकित चरण प्रत्येक आदान-प्रदान की व्याख्या करते हैं।

वेब ब्राउज़र और वेब सर्वर के बीच SSL हैंडशेक का आरेख

  1. ब्राउज़र सर्वर को HTTPS अनुरोध भेजता है.
  2. अब सर्वर को ब्राउज़र को यह साबित करने के लिए कुछ पहचान प्रदान करनी होगी कि वह विश्वसनीय है। यह ब्राउज़र को अपने SSL प्रमाणपत्र की एक प्रति भेजकर किया जा सकता है।
  3. प्रत्येक ब्राउज़र की अपनी विश्वसनीय CA की सूची होती है। ब्राउज़र अपने विश्वसनीय CA की सूची के आधार पर प्रमाणपत्र रूट की जांच करता है, तथा यह सुनिश्चित करता है कि प्रमाणपत्र की अवधि समाप्त नहीं हुई है, उसे निरस्त नहीं किया गया है, तथा यह भी सुनिश्चित करता है कि जिस वेबसाइट से वह कनेक्ट हो रहा है, उसके लिए सामान्य नाम वैध है।
  4. यदि ब्राउज़र प्रमाणपत्र पर भरोसा करता है, तो सर्वर और ब्राउज़र के बीच एक एन्क्रिप्टेड सत्र बनाया जाता है।
  5. सर्वर और ब्राउज़र एन्क्रिप्टेड संदेश भेज सकते हैं

SSL प्रमाणपत्रों के प्रकार

ब्राउज़र और सर्वर सुरक्षित कनेक्शन स्थापित करने के लिए SSL प्रमाणपत्र तंत्र का उपयोग करते हैं। इस कनेक्शन में तीन प्रकार के प्रमाणपत्रों का सत्यापन शामिल है।

  • जड़
  • मध्यवर्ती
  • सर्वर प्रमाणपत्र

SSL प्रमाणपत्र प्राप्त करने की प्रक्रिया

एसएसएल प्रमाणपत्र प्राप्त करने की प्रक्रिया में निम्नलिखित चरण शामिल हैं:-

  1. सबसे पहले, आपको CSR (प्रमाणपत्र हस्ताक्षर अनुरोध बनाएं) अनुरोध बनाना होगा।
  2. CSR अनुरोध CSR डेटा फ़ाइल बनाता है, जिसे SSL प्रमाणपत्र जारीकर्ता, जिसे CA (प्रमाणपत्र प्राधिकरण) के रूप में जाना जाता है, को भेजा जाता है।
  3. CA आपके सर्वर के लिए SSL प्रमाणपत्र बनाने के लिए CSR डेटा फ़ाइलों का उपयोग करता है।
  4. SSL प्रमाणपत्र प्राप्त करने के बाद, आपको इसे अपने सर्वर पर स्थापित करना होगा।
  5. एक मध्यवर्ती प्रमाणपत्र भी स्थापित करने की आवश्यकता है जो आपके SSL प्रमाणपत्र को CA के मूल प्रमाणपत्र के साथ जोड़ता है।

नीचे दी गई छवि तीनों प्रमाणपत्रों को दर्शाती है- रूट, इंटरमीडिएट और सर्वर प्रमाणपत्र।

रूट, इंटरमीडिएट और सर्वर एसएसएल प्रमाणपत्रों को दर्शाने वाली प्रमाणपत्र श्रृंखला

SSL प्रमाणपत्रों का सत्यापन कैसे किया जाता है

SSL प्रोग्रामों और एन्क्रिप्शन/डिक्रिप्शन रूटीन के संयोजन के माध्यम से काम करता है जो वेब सर्वर कंप्यूटर और वेब सर्वर ब्राउज़र पर मौजूद होते हैं।

एसएसएल प्रमाणपत्र में मूलतः निम्नलिखित जानकारी होती है।

  1. विषय जो वेबसाइट के स्वामी की पहचान है।
  2. वैधता जानकारी- एक सार्वजनिक और एक निजी कुंजी।

निजी और सार्वजनिक कुंजी दो विशिष्ट रूप से संबंधित क्रिप्टोग्राफिक कुंजी (संख्याएँ) हैं। सार्वजनिक कुंजी द्वारा एन्क्रिप्ट की गई किसी भी चीज़ को केवल निजी कुंजी द्वारा ही डिक्रिप्ट किया जा सकता है। ब्राउज़र प्रमाणपत्र की जाँच करते समय इन फ़ील्ड्स को दिखाता है, जैसा कि नीचे दिखाया गया है।

प्रमाणपत्र विवरण फलक में विषय, वैधता अवधि और सार्वजनिक कुंजी सूचीबद्ध होती है।

जब प्रमाणपत्र के कारण सर्वर और क्लाइंट के बीच सुरक्षित कनेक्शन स्थापित नहीं होता है, तो निम्न SSL प्रमाणपत्र त्रुटि प्रकट होगी।

SSL प्रमाणपत्र त्रुटि के प्रकार

मान लीजिए कि आप एक HTTPS अनुरोध टाइप करते हैं और ब्राउज़र "यह कनेक्शन अविश्वसनीय है" या "साइट का सुरक्षा प्रमाणपत्र विश्वसनीय नहीं है" जैसे संदेश देता है। ब्राउज़र प्रस्तुत प्रमाणपत्र के साथ एक सुरक्षित कनेक्शन स्थापित नहीं कर सका, इसलिए वह रुक जाता है और उपयोगकर्ता से उचित कार्रवाई करने के लिए कहता है।

विभिन्न ब्राउज़रों में प्रमाणपत्र के कारण आपको दिखाई देने वाली त्रुटियाँ कुछ इस प्रकार की हो सकती हैं

  1. आगFox - यह कनेक्शन अविश्वसनीय है
  2. गूगल क्रोम इस साइट की सुरक्षा पर भरोसा नहीं किया जा सकता।
  3. इंटरनेट एक्सप्लोरर (IE) - इस वेबसाइट द्वारा प्रस्तुत यह सुरक्षा प्रमाणपत्र किसी विश्वसनीय प्रमाणपत्र प्राधिकारी (सीए) द्वारा विश्वसनीय नहीं था

नीचे दिया गया स्क्रीनशॉट एक अविश्वसनीय प्रमाणपत्र द्वारा उत्पन्न अंतराल को दर्शाता है।

अमान्य SSL प्रमाणपत्र के लिए ब्राउज़र द्वारा दिखाया गया अविश्वसनीय कनेक्शन चेतावनी पृष्ठ

SSL प्रमाणपत्र त्रुटि को कैसे संभालें Selenium वेबड्राइवर

मान लीजिए परीक्षण स्क्रिप्ट ऊपर दिए गए "अविश्वसनीय कनेक्शन" पृष्ठ पर पहुँच जाता है। स्क्रिप्ट को इस प्रकार समायोजित करना होगा कि वह SSL अपवाद को स्वयं ही संभाल ले, पूरी तरह से इसके माध्यम से। स्वचालन.

यह परिवर्तन उपयोग में आने वाले ब्राउज़र इंस्टेंस पर निर्भर करता है, और यहीं पर वांछित क्षमताएँ महत्वपूर्ण हो जाती हैं। वांछित क्षमताएँ ड्राइवर इंस्टेंस को कॉन्फ़िगर करती हैं। Selenium वेबड्राइवर, जिसमें क्रोमड्राइवर भी शामिल है, Firefoxड्राइवर और इंटरनेट एक्सप्लोरर।

नीचे दिए गए चरणों को इसमें जोड़ा जा सकता है। Selenium प्रत्येक ब्राउज़र के लिए "अविश्वसनीय कनेक्शन" की स्थिति को दूर करने के लिए स्क्रिप्ट।

⚠️ Selenium 4 नोट: DesiredCapabilities क्लास को हटा दिया गया था Selenium 4. ब्राउज़र विकल्प क्लास अब एक ही W3C क्षमता के माध्यम से समान सेटिंग को वहन करते हैं। असुरक्षित प्रमाणपत्र स्वीकार करें.

ब्राउज़र Selenium 4 वर्ग कॉल
Chrome क्रोमविकल्प setAcceptInsecureCerts(true)
Firefox Firefoxऑप्शंस setAcceptInsecureCerts(true)
Edge एजऑप्शन्स setAcceptInsecureCerts(true)
Safari Javascriptनिर्वाहक अस्थायी बाईपास स्क्रिप्ट
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
WebDriver driver = new ChromeDriver(options);

SSL प्रमाणपत्र त्रुटि प्रबंधन Firefox

SSL प्रमाणपत्र त्रुटि से निपटने के लिए Firefox, हमें वांछित क्षमताओं का उपयोग करने की आवश्यकता है Selenium वेबड्राइवर डाउनलोड करें और निम्नलिखित चरणों का पालन करें।

चरण 1) सबसे पहले हमें एक नया बनाना होगा Firefox प्रोफाइल कहना "मेरी प्रोफाइल".

चरण 2) अब नीचे दी गई स्क्रिप्ट में myProfile तक पहुंचें और बनाएं Firefoxप्रोफ़ाइल ऑब्जेक्ट.

ProfilesIni prof = new ProfilesIni()				
FirefoxProfile ffProfile= prof.getProfile ("myProfile")

चरण 3) अब हमें फायर फ़ोल्डर में “setAcceptUntrustedCertificates” और “setAssumeUntrustedCertificateIssuer” प्रॉपर्टी सेट करनी होंगी। Fox प्रोफ़ाइल।

ffProfile.setAcceptUntrustedCertificates(true) 
ffProfile.setAssumeUntrustedCertificateIssuer(false)

चरण 4) अब अग्नि का उपयोग करेंFox आग में प्रोफ़ाइलFox ड्राइवर ऑब्जेक्ट.

WebDriver driver = new FirefoxDriver (ffProfile)

नोट: "सेटAcceptUntrustedCertificates" तथा "setAssumeUntrustedCertificateIssuerवेब ब्राउज़रों में प्रमाणपत्र संबंधी त्रुटियों को संभालने की क्षमताएं मौजूद हैं।

⚠️ संस्करण संबंधी टिप्पणी: ऊपर दिया गया प्रोफ़ाइल-आधारित कोड लक्षित करता है Selenium 2 और Selenium 3. पर Selenium 4. एक प्रोफ़ाइल संलग्न है Firefoxविकल्प, और Firefox यह डिफ़ॉल्ट रूप से असुरक्षित प्रमाणपत्रों को स्वीकार करता है।

क्रोम में SSL प्रमाणपत्र त्रुटि प्रबंधन

Chrome में SSL त्रुटि को संभालने के लिए, नीचे दिया गया DesiredCapabilities ऑब्जेक्ट हर SSL प्रमाणपत्र को स्वीकार करता है, इसलिए उपयोगकर्ता को रन के दौरान कोई प्रमाणपत्र चेतावनी दिखाई नहीं देती है।

हमें नीचे दिए अनुसार DesiredCapabilities क्लास का उदाहरण बनाना होगा:-

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()       
handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)
WebDriver driver = new ChromeDriver (handlSSLErr);

⚠️ संस्करण संबंधी टिप्पणी: CapabilityType.ACCEPT_SSL_CERTS पुराने JSON वायर प्रोटोकॉल से संबंधित है। इसे रन करते समय पहले दिखाए गए ChromeOptions स्निपेट से बदलें। Selenium 4.

IE में SSL प्रमाणपत्र त्रुटि प्रबंधन

क्रोम ब्राउज़र में SSL प्रमाणपत्रों को संभालने के विपरीत FirefoxIE में, आपको इसे इस तरह से हैंडल करना पड़ सकता है जावास्क्रिप्ट.

IE में SSL प्रमाणपत्र को संभालने के लिए, आप इस स्थिति को दो तरीकों से हल कर सकते हैं।

विधि 1) इंटरस्टिशियल पर मौजूद "इस वेबसाइट पर जारी रखें (अनुशंसित नहीं)" लिंक पर क्लिक करें। उस लिंक की आईडी "overridelink" है, जिसे आप F12 दबाकर खोले गए HTML पैनल में देख सकते हैं, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है।

इंटरनेट एक्सप्लोरर प्रमाणपत्र चेतावनी जिसमें "इस वेबसाइट पर जारी रखें" ओवरराइड लिंक शामिल है

driver.navigate() विधि का उपयोग करके लिंक पर क्लिक करें Javaस्क्रिप्ट इस प्रकार है :-

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");

विधि 2) दूसरा तरीका क्रोम एसएसएल हैंडलिंग कोड के काफी समान है।

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.ie.driver","IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(capabilities);

उपरोक्त कोड IE में SSL प्रमाणपत्र त्रुटि को संभालने में मदद करेगा।

⚠️ संस्करण संबंधी टिप्पणी: इंटरनेट एक्सप्लोरर 11 को जून 2022 में बंद कर दिया गया था। उसी परिदृश्य को इसके विरुद्ध चलाएँ। Microsoft Edge EdgeOptions का उपयोग करें, या जहां किसी पुराने एप्लिकेशन को अभी भी इसकी आवश्यकता है, वहां Edge को IE मोड में चलाएं।

अक्सर पूछे जाने वाले प्रश्न

क्रोमियम प्रोजेक्ट चलता है badssl.comयह वेबसाइट एक्सपायर हो चुके, सेल्फ-साइन किए गए, निरस्त किए गए और गलत होस्ट वाले सबडोमेन को सेवा प्रदान करती है। एक्सपायर हो चुके सर्टिफिकेट की विफलता को सुरक्षित रूप से दोहराने के लिए, एक टेस्ट स्क्रिप्ट को expired.badssl.com पर चलाएं।

नहीं. Selenium 4 ने इसे ब्राउज़र ऑप्शंस क्लास के पक्ष में हटा दिया। एक ChromeOptions बनाएं, FirefoxOptions या EdgeOptions ऑब्जेक्ट का उपयोग करके setAcceptInsecureCerts(true) को कॉल करें और इसे ड्राइवर कंस्ट्रक्टर को पास करें।

एक EdgeOptions ऑब्जेक्ट बनाएं, setAcceptInsecureCerts(true) को कॉल करें और इसे EdgeDriver कंस्ट्रक्टर में पास करें। यह पैटर्न Chrome के साथ मेल खाता है क्योंकि दोनों ब्राउज़र Chromium इंजन साझा करते हैं।

SafariDriver में accept-insecure-certs स्विच नहीं है। इसका उपयोग करें JavascriptCertificateWarningController.visitInsecureWebsiteWithTemporaryBypass() को चलाने के लिए एक्ज़ीक्यूटर, जो केवल उस सत्र के लिए इंटरस्टिशियल को साफ़ करता है।

ERR_CERT_DATE_INVALID एक समाप्त हो चुके प्रमाणपत्र को दर्शाता है, ERR_CERT_REVOKED एक निरस्त प्रमाणपत्र को और ERR_CERT_AUTHORITY_INVALID एक स्व-हस्ताक्षरित प्रमाणपत्र या अविश्वसनीय जारीकर्ता को दर्शाता है। स्क्रिप्ट में कोई भी बदलाव करने से पहले यह कोड कारण बताता है।

मशीन लर्निंग त्रुटि कोड और होस्ट के आधार पर प्रमाणपत्र विफलताओं को वर्गीकृत करती है, जिससे समाप्त हो चुके स्टेजिंग प्रमाणपत्र को वास्तविक दोष से अलग किया जा सकता है। यह वर्गीकरण एक ही वातावरण की समस्या को कई असंबंधित परीक्षण बग के रूप में दर्ज होने से रोकता है।

हां. गिटहब कोपिलॉट यह Options ऑब्जेक्ट और ड्राइवर कंस्ट्रक्टर को एक टिप्पणी से तैयार करता है, लेकिन यह जांच लें कि यह हटाए गए DesiredCapabilities कॉल के बजाय setAcceptInsecureCerts का सुझाव देता है।

केवल परीक्षण वातावरणों पर। सभी प्रमाणपत्रों को स्वीकार करने से समाप्ति, होस्टनाम और श्रृंखला संबंधी दोष छिप जाते हैं, इसलिए उत्पादन परीक्षणों में इस फ़्लैग को शामिल न करें और सुरक्षा परीक्षण के दौरान ही प्रमाणपत्र की पुष्टि करें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: