Xử lý SSL Certificate trong Selenium WebDriver

Chứng chỉ SSL là gì?

SSL (Lớp cổng bảo mật) là một giao thức bảo mật tiêu chuẩn để thiết lập kết nối an toàn giữa máy chủ và máy khách là trình duyệt.

Chứng chỉ SSL (Lớp cổng bảo mật) đảm bảo chuyển đổi dữ liệu an toàn trên máy chủ và ứng dụng khách bằng cách sử dụng tiêu chuẩn mã hóa mạnh hoặc chữ ký kỹ thuật số. Người ta phải cài đặt chứng chỉ SSL hoặc chứng chỉ ký mã.

Lợi ích của chứng chỉ SSL

Có một số lợi ích của việc sử dụng chứng chỉ SSL như,

  • Người ta có thể tăng sự tin tưởng của người dùng và khách hàng của họ để tăng cường sự phát triển nhanh chóng của doanh nghiệp
  • Các chứng chỉ này giúp bảo mật các giao dịch trực tuyến và thông tin nhạy cảm của khách hàng như dữ liệu thẻ tín dụng / thẻ ghi nợ, v.v.
  • Việc ký chứng chỉ có xu hướng nhận được số lượt tải xuống tối đa và đánh giá tốt từ người dùng.

Các trang web được bảo mật SSL bắt đầu bằng https: // và bạn có thể thấy biểu tượng ổ khóa hoặc thanh địa chỉ màu xanh lục nếu kết nối được thiết lập an toàn.

Ví dụ: nếu bạn muốn thực hiện một số giao dịch qua ngân hàng trực tuyến hoặc muốn mua Điện thoại di động thông qua trang thương mại điện tử như Flipkart hoặc Amazon.

Điều gì xảy ra giữa Trình duyệt web và Máy chủ

  1. Một trình duyệt cố gắng kết nối với một trang web được bảo mật bằng SSL. Trình duyệt yêu cầu máy chủ web tự nhận dạng
  2. Máy chủ gửi cho trình duyệt một bản sao chứng chỉ SSL của nó
  3. Trình duyệt xác minh xem chứng chỉ SSL có phải là chính hãng hay không. Nếu vậy, nó sẽ gửi một thông báo đến máy chủ
  4. Máy chủ gửi lại xác nhận được ký kỹ thuật số để bắt đầu phiên được mã hóa SSL
  5. Dữ liệu được mã hóa được chia sẻ giữa máy chủ và trình duyệt

Khi làm như vậy, bạn cần truyền thông tin nhạy cảm như số thẻ tín dụng hoặc thông tin đăng nhập và thông tin đó phải truyền một cách an toàn để không thể bị tấn công hoặc đánh chặn.

Ví dụ

  1. Nhập https://netbanking.hdfcbank.com/netbanking/ .
  2. Nhấn Enter.
  3. Bạn sẽ thấy thanh địa chỉ màu xanh lục trong trình duyệt như bên dưới: –
Xử lý lỗi chứng chỉ SSL trong Selenium

Chứng chỉ SSL tạo kết nối an toàn như thế nào

  1. Trình duyệt gửi yêu cầu HTTPS đến máy chủ.
  2. Bây giờ Máy chủ phải cung cấp một số nhận dạng cho Trình duyệt để chứng minh rằng nó đáng tin cậy. Điều này có thể được thực hiện bằng cách gửi một bản sao chứng chỉ SSL của nó tới trình duyệt.
  3. Mỗi Trình duyệt có danh sách CA đáng tin cậy của riêng nó. Trình duyệt kiểm tra gốc chứng chỉ dựa trên danh sách CA đáng tin cậy của nó và chứng chỉ đó chưa hết hạn, chưa được thu hồi và tên chung có hợp lệ cho trang web mà nó đang kết nối.
  4. Nếu trình duyệt tin cậy chứng chỉ, một phiên mã hóa sẽ được tạo giữa máy chủ và trình duyệt.
  5. Máy chủ và Trình duyệt có thể gửi tin nhắn được mã hóa

Các loại chứng chỉ SSL

Trình duyệt và máy chủ sử dụng cơ chế Chứng chỉ SSL để có thể thiết lập kết nối an toàn. Kết nối này liên quan đến việc xác minh ba loại chứng chỉ.

  • Nguồn gốc
  • Trung gian
  • Chứng chỉ máy chủ

Quy trình nhận chứng chỉ SSL

Quy trình nhận chứng chỉ SSL bao gồm các bước sau: –

  1. Đầu tiên, bạn phải tạo yêu cầu CSR (tạo Yêu cầu ký chứng chỉ).
  2. Yêu cầu CSR tạo tệp dữ liệu CSR, tệp này được gửi đến nhà phát hành chứng chỉ SSL được gọi là CA (Tổ chức phát hành chứng chỉ).
  3. CA sử dụng tệp dữ liệu CSR để tạo chứng chỉ SSL cho máy chủ của bạn.
  4. Sau khi nhận được chứng chỉ SSL, bạn phải cài đặt nó trên máy chủ của mình.
  5. Chứng chỉ trung gian cũng cần được cài đặt để liên kết chứng chỉ SSL của bạn với chứng chỉ gốc của CA.

Hình ảnh dưới đây đại diện cho cả ba chứng chỉ – Chứng chỉ gốc, Trung gian và Máy chủ.

Cách xác minh chứng chỉ SSL

SSL hoạt động thông qua sự kết hợp của các chương trình và quy trình mã hóa / giải mã tồn tại trên máy chủ web và trình duyệt máy chủ web.

Chứng chỉ SSL về cơ bản chứa thông tin bên dưới.

  1. Chủ đề là danh tính của chủ sở hữu trang web.
  2. Thông tin hợp lệ – khóa công khai và khóa riêng tư.

Khóa riêng tư và khóa công khai là hai khóa (số) mật mã có liên quan duy nhất. Bất cứ thứ gì được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng.

Khi kết nối an toàn không được thiết lập giữa máy chủ và máy khách do chứng chỉ, lỗi chứng chỉ SSL sau sẽ được hiển thị.

Các loại lỗi chứng chỉ SSL

Giả sử bạn nhập một số yêu cầu https vào trình duyệt và nhận được thông báo như “Kết nối này không đáng tin cậy” hoặc “Chứng chỉ bảo mật của trang web không đáng tin cậy” tùy thuộc vào trình duyệt bạn đang sử dụng. Sau đó, lỗi như vậy là do lỗi chứng chỉ SSL.

Bây giờ, nếu trình duyệt không thể thiết lập kết nối an toàn với chứng chỉ được yêu cầu, thì trình duyệt sẽ đưa ra ngoại lệ “Kết nối không đáng tin cậy” như bên dưới và yêu cầu người dùng thực hiện hành động thích hợp.

Các loại lỗi bạn có thể gặp do chứng chỉ trong các trình duyệt khác nhau có thể giống như thế này

  1. FireFox – Kết nối này không đáng tin cậy
  2. Google Chrome -Bảo mật trang web này không đáng tin cậy
  3. Internet Explorer (IE) – Chứng chỉ bảo mật do trang web này cung cấp không được cơ quan cấp chứng chỉ đáng tin cậy (CA) tin cậy

Cách xử lý Lỗi chứng chỉ SSL bằng Selenium Webdriver

Giả sử chúng ta đã viết một số tập lệnh thử nghiệm và trong khi thực thi tập lệnh, chúng ta gặp phải tình huống là “Kết nối không đáng tin cậy” ở trên thì làm cách nào để xử lý ngoại lệ hoàn toàn thông qua tự động hóa.

Trong trường hợp đó, chúng tôi phải điều chỉnh tập lệnh của mình theo cách để nó tự xử lý SSL Exception.

Các tập lệnh cần được sửa đổi theo loại phiên bản trình duyệt mà chúng tôi đang sử dụng. Những khả năng mong muốn sẽ xuất hiện trong hình ảnh.

Khả năng mong muốn được sử dụng để cấu hình phiên bản trình điều khiển của Selenium Webdriver. Thông qua Khả năng mong muốn, người ta có thể định cấu hình tất cả phiên bản trình điều khiển như ChromeDriver, FirefoxDriver và Internet Explorer.

Hiện tại, chúng tôi không có bất kỳ URL cụ thể nào để tạo tình huống trên, nhưng tôi đang cung cấp các bước mà chúng tôi có thể thêm vào Selenium Script để xử lý tình huống ở trên “Kết nối không đáng tin cậy”.

Xử lý lỗi chứng chỉ SSL trong Firefox

Để xử lý lỗi chứng chỉ SSL trong Firefox, chúng ta cần sử dụng các khả năng mong muốn của Selenium Webdriver và làm theo các bước sau.

Bước 1) : Đầu tiên chúng ta cần tạo một hồ sơ firefox mới nói ” myProfile “. Bạn có thể tham khảo google để tìm hiểu “Cách tạo” profile firefox. Nó là đơn giản và dễ dàng.

Bước 2) : Bây giờ truy cập myProfile trong script như bên dưới và tạo đối tượng FirefoxProfile.

  • ProfilesIni prof = new ProfilesIni ()  
  • FirefoxProfile ffProfile = prof.getProfile (“myProfile”)

Bước 3) : Bây giờ chúng ta cần đặt thuộc tính ” setAcceptUntrustedCertificates ” và ” setAssumeUntrustedCertificateIssuer ” trong hồ sơ Fire Fox.

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

Bước 4) : Bây giờ sử dụng hồ sơ FireFox trong đối tượng trình điều khiển FireFox.

WebDriver driver = new FirefoxDriver (ffProfile)

Lưu ý : “setAcceptUntrustedCertificates” và “setAssumeUntrustedCertificateIssuer là các khả năng xử lý lỗi chứng chỉ trong trình duyệt web.

Xử lý lỗi chứng chỉ SSL trong Chrome

Để xử lý lỗi SSL trong Chrome, chúng tôi cần sử dụng các khả năng mong muốn của Selenium Webdriver. Đoạn mã dưới đây sẽ giúp chấp nhận tất cả chứng chỉ SSL trong chrome và người dùng sẽ không nhận được bất kỳ lỗi nào liên quan đến chứng chỉ SSL khi sử dụng mã này.

Chúng ta cần tạo phiên bản của lớp Des mong muốn như sau: –

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()       

handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)

WebDriver driver = new ChromeDriver (handlSSLErr);

Xử lý lỗi chứng chỉ SSL trong IE

Không giống như xử lý chứng chỉ SSL trong trình duyệt Chrome và Firefox, trong IE, bạn có thể phải xử lý nó bằng javascript.

Để xử lý chứng chỉ SSL trong IE, bạn có thể xử lý tình huống này theo hai cách,

  1. Trong này, bạn sẽ nhấp vào liên kết ” Tiếp tục đến trang web này (không được khuyến nghị)”. Trong phần sau, chúng ta sẽ xem cách xử lý lỗi SSL trong IE.

Quan sát lỗi chứng chỉ SSL trên trình duyệt IE, bạn sẽ thấy liên kết “Tiếp tục đến trang web này (không được khuyến nghị)”. Liên kết này có ID “liên kết ghi đè”. Bạn có thể xem ID ở chế độ HTML bằng F12.

Nhấp vào liên kết bằng cách sử dụng phương thức driver.navigate () với JavaScript như bên dưới: –

driver.navigate () .to (“javascript: document.getElementById (‘overridelink’). click ()”);

  1. Phương pháp thứ hai khá giống với mã Xử lý SSL của chrome

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

System.setProperty(“webdriver.ie.driver”,”IEDriverServer.exe”);

WebDriver driver = new InternetExplorerDriver(capabilities);

Đoạn mã trên sẽ giúp xử lý lỗi chứng chỉ SSL trong IE.

Bản tóm tắt:

  • SSL (Lớp cổng bảo mật) là một giao thức bảo mật tiêu chuẩn để thiết lập kết nối an toàn giữa máy chủ và máy khách
  • Trình duyệt và máy chủ sử dụng cơ chế Chứng chỉ SSL để có thể thiết lập kết nối an toàn.
  • SSL hoạt động thông qua sự kết hợp của các chương trình và quy trình mã hóa / giải mã tồn tại trên máy chủ web và trình duyệt máy chủ web.
  • Khi kết nối an toàn không được thiết lập giữa máy chủ và máy khách do lỗi chứng chỉ chứng chỉ SSL sẽ xảy ra
  • Cần phải điều chỉnh tập lệnh của chúng tôi theo cách mà nó sẽ tự xử lý Lỗi / Ngoại lệ SSL thông qua trình điều khiển Web Selenium.
Back to top button