วิธีจัดการใบรับรอง SSL ใน Selenium

ใบรับรอง SSL ใน Selenium

SSL (Secure Sockets Layer) เป็นโปรโตคอลความปลอดภัยมาตรฐานสำหรับการสร้างการเชื่อมต่อที่ปลอดภัยระหว่างเซิร์ฟเวอร์และไคลเอนต์ซึ่งเป็นเบราว์เซอร์

ใบรับรอง SSL (Secure Socket Layer) ช่วยให้มั่นใจได้ว่าข้อมูลจะถูกแปลงอย่างปลอดภัยผ่านเซิร์ฟเวอร์และแอปพลิเคชันไคลเอนต์โดยใช้มาตรฐานการเข้ารหัสที่แข็งแกร่งหรือลายเซ็นดิจิทัล โดยจะต้องติดตั้งใบรับรอง SSL หรือใบรับรองการลงนามรหัส

ประโยชน์ของใบรับรอง SSL

การใช้ใบรับรอง SSL มีประโยชน์หลายประการ เช่น

  • สามารถเพิ่มความไว้วางใจของผู้ใช้และลูกค้าเพื่อเพิ่มการเติบโตอย่างรวดเร็วของธุรกิจ
  • ใบรับรองเหล่านี้ช่วยรักษาความปลอดภัยธุรกรรมออนไลน์และข้อมูลที่ละเอียดอ่อนของลูกค้า เช่น ข้อมูลบัตรเครดิต/บัตรเดบิต เป็นต้น
  • ใบรับรองการลงนามมีแนวโน้มที่จะได้รับการดาวน์โหลดสูงสุดและได้รับคำวิจารณ์ที่ดีจากผู้ใช้

เว็บไซต์ที่มีการรักษาความปลอดภัย SSL เริ่มต้นด้วย https://และคุณจะเห็นไอคอนแม่กุญแจหรือแถบที่อยู่สีเขียวหากทำการเชื่อมต่ออย่างปลอดภัย

เช่น หากคุณต้องการทำธุรกรรมผ่านเน็ตแบงก์กิ้ง หรือต้องการซื้อก โทรศัพท์มือถือ โทรศัพท์ผ่านไซต์อีคอมเมิร์ซเช่น Flipkart หรือ Amazon.

จะเกิดอะไรขึ้นระหว่างเว็บเบราว์เซอร์และเซิร์ฟเวอร์

  1. เบราว์เซอร์พยายามเชื่อมต่อกับเว็บไซต์ที่ปลอดภัยด้วย SSL เบราว์เซอร์ขอให้เว็บเซิร์ฟเวอร์ระบุตัวเอง
  2. เซิร์ฟเวอร์ส่งสำเนาใบรับรอง SSL ให้เบราว์เซอร์
  3. เบราว์เซอร์จะตรวจสอบว่าใบรับรอง SSL เป็นของแท้หรือไม่ หากเป็นเช่นนั้น ระบบจะส่งข้อความไปยังเซิร์ฟเวอร์
  4. เซิร์ฟเวอร์จะส่งการตอบรับที่ลงนามแบบดิจิทัลกลับไปเพื่อเริ่มเซสชันที่เข้ารหัส SSL
  5. ข้อมูลที่เข้ารหัสจะถูกแชร์ระหว่างเซิร์ฟเวอร์และเบราว์เซอร์

ในการดำเนินการดังกล่าว คุณต้องส่งข้อมูลที่ละเอียดอ่อน เช่น หมายเลขบัตรเครดิตหรือข้อมูลรับรองการเข้าสู่ระบบ และต้องส่งอย่างปลอดภัยเพื่อไม่ให้ถูกแฮ็กหรือดักฟังได้

ตัวอย่างเช่น

  1. ประเภท https://netbanking.hdfcbank.com/netbanking/ .
  2. กด Enter
  3. คุณจะเห็นแถบที่อยู่สีเขียวในเบราว์เซอร์ดังนี้:-

ประโยชน์ของใบรับรอง SSL

ใบรับรอง SSL สร้างการเชื่อมต่อที่ปลอดภัยอย่างไร

ใบรับรอง SSL สร้างการเชื่อมต่อที่ปลอดภัย

  1. เบราว์เซอร์ ส่งคำขอ HTTPS ไปยังเซิร์ฟเวอร์
  2. ตอนนี้เซิร์ฟเวอร์จะต้องระบุตัวตนบางอย่างให้กับเบราว์เซอร์เพื่อพิสูจน์ว่าเชื่อถือได้ ซึ่งสามารถทำได้โดยการส่งสำเนาใบรับรอง SSL ไปยังเบราว์เซอร์
  3. เบราว์เซอร์แต่ละตัวมีรายการ Trusted CA's ของตัวเอง เบราว์เซอร์ตรวจสอบรากใบรับรองกับรายการ CA ที่เชื่อถือได้ และตรวจสอบว่าใบรับรองยังไม่หมดอายุ ไม่ถูกเพิกถอน และชื่อทั่วไปนั้นถูกต้องสำหรับเว็บไซต์ที่เชื่อมต่ออยู่
  4. หากเบราว์เซอร์เชื่อถือใบรับรอง เซสชันที่เข้ารหัสจะถูกสร้างขึ้นระหว่างเซิร์ฟเวอร์และเบราว์เซอร์
  5. เซิร์ฟเวอร์และเบราว์เซอร์สามารถส่งข้อความที่เข้ารหัสได้

ประเภทของใบรับรอง SSL

เบราว์เซอร์และเซิร์ฟเวอร์ใช้กลไกใบรับรอง SSL เพื่อให้สามารถสร้างการเชื่อมต่อที่ปลอดภัยได้ การเชื่อมต่อนี้เกี่ยวข้องกับการตรวจสอบใบรับรองสามประเภท

  • ราก
  • Intermediate
  • ใบรับรองเซิร์ฟเวอร์

ขั้นตอนการรับใบรับรอง SSL

กระบวนการรับใบรับรอง SSL มีขั้นตอนด้านล่าง:-

  1. ขั้นแรก คุณต้องสร้างคำขอ CSR (สร้างคำขอลงนามใบรับรอง)
  2. คำขอ CSR สร้างไฟล์ข้อมูล CSR ซึ่งถูกส่งไปยังผู้ออกใบรับรอง SSL ที่เรียกว่า CA (Certificate Authority)
  3. CA ใช้ไฟล์ข้อมูล CSR เพื่อสร้างใบรับรอง SSL สำหรับเซิร์ฟเวอร์ของคุณ
  4. หลังจากได้รับใบรับรอง SSL แล้ว คุณต้องติดตั้งใบรับรองนั้นบนเซิร์ฟเวอร์ของคุณ
  5. จำเป็นต้องติดตั้งใบรับรองระดับกลางด้วย ซึ่งจะเชื่อมโยงใบรับรอง SSL ของคุณกับใบรับรองหลักของ CA

ภาพด้านล่างแสดงถึงใบรับรองทั้งสามใบ- ใบรับรองหลัก ระดับกลาง และเซิร์ฟเวอร์

ขั้นตอนการรับใบรับรอง SSL

วิธีการตรวจสอบใบรับรอง SSL

SSL ทำงานผ่านการผสมผสานระหว่างโปรแกรมและรูทีนการเข้ารหัส/ถอดรหัสที่มีอยู่บนเว็บเซิร์ฟเวอร์คอมพิวเตอร์และเว็บเซิร์ฟเวอร์เบราว์เซอร์

โดยทั่วไปใบรับรอง SSL จะมีข้อมูลด้านล่าง

  1. เรื่องที่เป็นตัวตนของเจ้าของเว็บไซต์
  2. ข้อมูลความถูกต้อง - กุญแจสาธารณะและกุญแจส่วนตัว

คีย์ส่วนตัวและคีย์สาธารณะเป็นคีย์การเข้ารหัส (ตัวเลข) ที่เกี่ยวข้องกันอย่างเฉพาะเจาะจง ทุกสิ่งที่เข้ารหัสด้วยคีย์สาธารณะสามารถถอดรหัสได้ด้วยคีย์ส่วนตัวเท่านั้น

ใบรับรอง SSL ได้รับการตรวจสอบแล้ว

หากไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยระหว่างเซิร์ฟเวอร์และไคลเอนต์เนื่องจากใบรับรอง ข้อผิดพลาดใบรับรอง SSL ต่อไปนี้จะปรากฏขึ้น

ประเภทของข้อผิดพลาดใบรับรอง SSL

สมมติว่าคุณพิมพ์คำขอ https ในเบราว์เซอร์และได้รับข้อความเช่น “การเชื่อมต่อนี้ไม่น่าเชื่อถือ” หรือ “ใบรับรองความปลอดภัยของเว็บไซต์ไม่น่าเชื่อถือ” ขึ้นอยู่กับเบราว์เซอร์ที่คุณใช้ ข้อผิดพลาดดังกล่าวอาจมีข้อผิดพลาดเกี่ยวกับใบรับรอง SSL

ในตอนนี้ หากเบราว์เซอร์ไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยด้วยใบรับรองที่ร้องขอได้ เบราว์เซอร์จะแสดงข้อยกเว้น "การเชื่อมต่อที่ไม่น่าเชื่อถือ" ดังด้านล่าง และขอให้ผู้ใช้ดำเนินการตามความเหมาะสม

ประเภทของข้อผิดพลาดที่คุณน่าจะเห็นเนื่องจากใบรับรองในเบราว์เซอร์ต่างๆ อาจเป็นเช่นนี้

  1. ธรรมชาติFox - การเชื่อมต่อนี้ไม่น่าเชื่อถือ
  1. Google Chrome -ความปลอดภัยของเว็บไซต์นี้ไม่น่าเชื่อถือ
  1. อินเตอร์เน็ตเอ็กซ์พลอเรอร์ (IE) – ใบรับรองความปลอดภัยที่แสดงโดยเว็บไซต์นี้ไม่ได้รับความเชื่อถือจากผู้ออกใบรับรองที่เชื่อถือได้ (CA)

ประเภทของข้อผิดพลาดใบรับรอง SSL

วิธีจัดการกับข้อผิดพลาดใบรับรอง SSL โดยใช้ Selenium ไดรเวอร์เว็บ

สมมติว่าเราได้เขียนสคริปต์ทดสอบบางส่วน และในขณะที่ดำเนินการสคริปต์ เราพบสถานการณ์เป็น "การเชื่อมต่อที่ไม่น่าเชื่อถือ" ข้างต้น แล้วเราจะจัดการกับข้อยกเว้นผ่านระบบอัตโนมัติได้อย่างไร

ในกรณีเช่นนี้ เราต้องปรับสคริปต์ของเราในลักษณะที่จะดูแล SSL Exception ด้วยตัวมันเอง

สคริปต์จำเป็นต้องได้รับการแก้ไขตามประเภทของอินสแตนซ์เบราว์เซอร์ที่เราใช้ สิ่งเหล่านี้เมื่อความสามารถที่ต้องการปรากฏอยู่ในรูปภาพ

ความสามารถที่ต้องการใช้เพื่อกำหนดค่าอินสแตนซ์ไดรเวอร์ของ Selenium เว็บไดรเวอร์ ด้วยความสามารถที่ต้องการ เราสามารถกำหนดค่าอินสแตนซ์ไดรเวอร์ทั้งหมด เช่น ChromeDriver Firefoxไดร์เวอร์ และ Internet Explorer

ณ ตอนนี้เรายังไม่มี URL เฉพาะสำหรับสร้างสถานการณ์ข้างต้น แต่ฉันกำลังระบุขั้นตอนที่เราสามารถเพิ่มลงใน Selenium สคริปต์เพื่อจัดการกับสถานการณ์ข้างต้น “การเชื่อมต่อที่ไม่น่าเชื่อถือ”

การจัดการข้อผิดพลาดใบรับรอง SSL ใน Firefox

สำหรับการจัดการข้อผิดพลาดใบรับรอง SSL ใน Firefoxเราจำเป็นต้องใช้ความสามารถที่ต้องการของ Selenium Webdriver และทำตามขั้นตอนต่อไปนี้

ขั้นตอน 1) ขั้นแรกเราต้องสร้างโปรไฟล์ Firefox ใหม่โดยระบุว่า “ประวัติของฉัน“. คุณสามารถดูวิธีสร้างโปรไฟล์ Firefox ได้จาก Google ซึ่งง่ายและสะดวก

ขั้นตอน 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)

หมายเหตุ: “setAcceptUntrustedCertificates” และ “setAssumeUntrustedCertificateIssuer" คือความสามารถในการจัดการกับข้อผิดพลาดของใบรับรองในเว็บเบราว์เซอร์

การจัดการข้อผิดพลาดใบรับรอง SSL ใน Chrome

สำหรับการจัดการข้อผิดพลาด SSL ใน Chrome เราจำเป็นต้องใช้ความสามารถที่ต้องการ Selenium เว็บไดรเวอร์ รหัสด้านล่างจะช่วยยอมรับใบรับรอง SSL ทั้งหมดใน Chrome และผู้ใช้จะไม่ได้รับข้อผิดพลาดที่เกี่ยวข้องกับใบรับรอง SSL เมื่อใช้รหัสนี้

เราจำเป็นต้องสร้างอินสแตนซ์ของคลาส DesiredCapabilities ดังนี้:-

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

การจัดการข้อผิดพลาดใบรับรอง SSL ใน IE

ไม่เหมือนการจัดการใบรับรอง SSL ในเบราว์เซอร์ Chrome และ Firefoxใน IE คุณอาจต้องจัดการโดยใช้จาวาสคริปต์

ในการจัดการใบรับรอง SSL ใน IE คุณสามารถจัดการกับสถานการณ์นี้ได้สองวิธี

  1. ในนี้คุณจะคลิกลิงก์ “ดำเนินการต่อไปยังเว็บไซต์นี้ (ไม่แนะนำ)” ต่อไปนี้เราจะดูวิธีการจัดการกับข้อผิดพลาด SSL ใน IE

สังเกตข้อผิดพลาดใบรับรอง SSL ในเบราว์เซอร์ IE คุณจะพบลิงก์ “ดำเนินการต่อไปยังเว็บไซต์นี้ (ไม่แนะนำ)” ลิงก์นี้มี ID “แทนที่ลิงก์” คุณสามารถดู ID ในโหมด HTML โดยใช้ F12

การจัดการข้อผิดพลาดใบรับรอง SSL ใน IE

คลิกที่ลิงค์โดยใช้วิธี driver.navigate() ด้วย Javaต้นฉบับ ดังต่อไปนี้ :-

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
  1. วิธีที่สองค่อนข้างคล้ายกับโค้ดการจัดการ SSL ของ Chrome
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

สรุป

  • SSL (Secure Sockets Layer) เป็นโปรโตคอลความปลอดภัยมาตรฐานสำหรับการสร้างการเชื่อมต่อที่ปลอดภัยระหว่างเซิร์ฟเวอร์และไคลเอนต์
  • เบราว์เซอร์และเซิร์ฟเวอร์ใช้กลไกใบรับรอง SSL เพื่อให้สามารถสร้างการเชื่อมต่อที่ปลอดภัยได้
  • SSL ทำงานผ่านการผสมผสานระหว่างโปรแกรมและรูทีนการเข้ารหัส/ถอดรหัสที่มีอยู่บนเว็บเซิร์ฟเวอร์คอมพิวเตอร์และเว็บเซิร์ฟเวอร์เบราว์เซอร์
  • เมื่อไม่ได้สร้างการเชื่อมต่อที่ปลอดภัยระหว่างเซิร์ฟเวอร์และไคลเอนต์เนื่องจากใบรับรอง ข้อผิดพลาดใบรับรอง SSL จะเกิดขึ้น
  • จำเป็นต้องปรับสคริปต์ของเราในลักษณะที่จะดูแล SSL Exception/error ด้วยตัวเอง Selenium ไดรเวอร์เว็บ