Cách xử lý chứng chỉ SSL trong Selenium
Chứng chỉ SSL ở Selenium
SSL (Lớp cổng bảo mật) là 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ý 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 để thúc đẩy sự phát triển của doanh nghiệp một cách nhanh chóng
- 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.
- Chứng chỉ ký 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 một di động điện thoại 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ủ
- 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
- Máy chủ gửi cho trình duyệt một bản sao chứng chỉ SSL của nó
- 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 tin nhắn đến máy chủ
- Máy chủ gửi lại xác nhận được ký điện tử để bắt đầu phiên mã hóa SSL
- 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ị hack hoặc chặn.
Ví dụ
- Kiểu https://netbanking.hdfcbank.com/netbanking/ .
- Nhấn Enter.
- Bạn sẽ thấy thanh địa chỉ màu xanh lục trong trình duyệt như bên dưới: -
Chứng chỉ SSL tạo kết nối an toàn như thế nào
- trình duyệt gửi yêu cầu HTTPS đến máy chủ.
- 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 bản sao chứng chỉ SSL của nó tới trình duyệt.
- Mỗi trình duyệt có danh sách CA đáng tin cậy riêng. 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 bị thu hồi và tên chung có hợp lệ cho trang web mà nó đang kết nối hay không.
- Nếu trình duyệt tin cậy chứng chỉ thì một phiên mã hóa sẽ được tạo giữa máy chủ và trình duyệt.
- 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ỉ.
- Chân răng
- Trung cấp
- Chứng chỉ máy chủ
Quy trình nhận chứng chỉ SSL
Quá trình nhận chứng chỉ SSL bao gồm các bước dưới đây: -
- Trước tiên, bạn phải tạo yêu cầu CSR (tạo Yêu cầu ký chứng chỉ).
- 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 (Cơ quan cấp chứng chỉ).
- CA sử dụng tệp dữ liệu CSR để tạo chứng chỉ SSL cho máy chủ của bạn.
- 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.
- Cũng cần phải cài đặt chứng chỉ trung gian để 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 tính của 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.
- Chủ đề là danh tính của chủ sở hữu trang web.
- Thông tin hợp lệ - khóa công khai và khóa riêng.
Khóa riêng và khóa chung là hai khóa mật mã (số) có liên quan duy nhất. Bất cứ thứ gì được mã hóa bằng khóa chung 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 đây sẽ xuất hiện.
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. Khi đó lỗi như vậy có thể 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
- LửaFox - Kết nối này không đáng tin
- Google Chrome -Bảo mật trang web này không đáng tin cậy
- Internet Explorer (IE) – Chứng chỉ bảo mật do trang web này trình bày 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 cách sử dụng Selenium webdriver
Giả sử chúng ta đã viết một số tập lệnh kiểm thử và trong khi thực thi tập lệnh đó, chúng ta gặp phải tình huống “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 như vậy, chúng tôi phải điều chỉnh tập lệnh của mình theo cách nó sẽ tự xử lý Ngoại lệ SSL.
Các tập lệnh cần được sửa đổi tùy 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 này sẽ xuất hiện trong hình ảnh.
Khả năng mong muốn được sử dụng để định 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, FirefoxTrình điều khiển và Internet Explorer.
Hiện tại, chúng tôi không có bất kỳ URL cụ thể nào để tạo kịch bản 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 trong Selenium Tập lệnh xử lý tình huống trên “Kết nối khô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, ví dụ như “thông tin của tôi“. Bạn có thể tham khảo google để biết “Cách tạo” hồ sơ firefox. Rất đơn giản và dễ dàng.
Bước 2) Bây giờ hãy truy cập myProfile trong tập lệnh như bên dưới và tạo FirefoxĐối tượng hồ sơ.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Bước 3) Bây giờ chúng ta cần thiết lập “setAcceptUntrustedCertificates"Và"setAssumeUntrustedCertificateNhà phát hành“thuộc tính trong Hỏa Fox Hồ sơ.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Bước 4) Bây giờ hãy sử dụng LửaFox hồ sơ trong LửaFox đối tượng điều khiển.
WebDriver driver = new FirefoxDriver (ffProfile)
Lưu ý: “setAcceptUntrustedCertificates” và “setAssumeUntrustedCertificateIssuer" là khả năng xử lý các 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. Mã bên dưới 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 DesiredCapabilities 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ư việc 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,
- Trong phần 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ị)”. Sau đây chúng ta sẽ xem cách xử lý lỗi SSL trong IE.
Quan sát lỗi chứng chỉ SSL trong 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 cách sử dụng F12.
Nhấp vào liên kết bằng phương thức driver.navigate() với JavaScript như sau :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- Cách thứ 2 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.
Tổng kết
- SSL (Lớp cổng bảo mật) là 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 tính của 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 chứng chỉ SSL sẽ xảy ra lỗi
- Cần điều chỉnh tập lệnh của chúng tôi theo cách nó có thể tự xử lý Ngoại lệ/lỗi SSL thông qua Selenium Trình điều khiển web.