Cách xử lý chứng chỉ SSL trong Selenium
⚡ Tóm tắt thông minh
Lỗi chứng chỉ SSL gây cản trở quá trình... Selenium Kiểm tra thời điểm trình duyệt từ chối chứng chỉ không đáng tin cậy hoặc đã hết hạn, vì vậy mỗi tập lệnh WebDriver cần có khả năng dành riêng cho trình duyệt để chấp nhận chứng chỉ và cho phép quá trình tự động hóa tiếp tục.
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 bảo vệ dữ liệu truyền tải giữa máy chủ và ứng dụng khách bằng mã hóa mạnh và chữ ký số. Chủ sở hữu trang web 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 Số Điện Thoại đ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
Số thẻ và thông tin đăng nhập được truyền qua phiên giao dịch đó, vì vậy quá trình trao đổi phải được mã hóa từ đầu đến cuối và không thể bị chặn lại.
Ví dụ, biểu tượng ổ khóa và thanh địa chỉ bên dưới xác nhận rằng chứng chỉ đã được chấp nhận.
- 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
Sơ đồ bên dưới tracĐó là cái bắt tay, và các bước được đánh số tiếp theo giải thích từng bước trao đổi.
- 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 công khai là hai khóa mã hóa (số) có mối liên hệ duy nhất với nhau. 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. Trình duyệt sẽ hiển thị các trường này khi kiểm tra chứng chỉ, như hình bên dưới.
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 yêu cầu HTTPS và trình duyệt trả lời bằng "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". Trình duyệt không thể thiết lập kết nối an toàn với chứng chỉ được cung cấp, vì vậy nó dừng lạ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 – Trang web này không đáng tin cậy về mặt bảo mật.
- 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
Ảnh chụp màn hình bên dưới hiển thị đoạn mã xen kẽ do chứng chỉ không đáng tin cậy tạo ra.
Cách xử lý lỗi chứng chỉ SSL bằng cách sử dụng Selenium webdriver
Giả sử kịch bản thử nghiệm Nó truy cập vào trang "Kết nối không đáng tin cậy" ở trên. Cần phải điều chỉnh kịch bản để nó tự xử lý ngoại lệ SSL, hoàn toàn thông qua... tự động hóa.
Sự thay đổi phụ thuộc vào phiên bản trình duyệt đang được sử dụng, và đây là lúc các khả năng mong muốn phát huy tác dụng. Khả năng mong muốn cấu hình phiên bản trình điều khiển của Selenium Webdriver, bao gồm ChromeDriver, FirefoxTrình điều khiển và Internet Explorer.
Các bước dưới đây có thể được thêm vào Selenium Đoạn mã này dùng để khắc phục tình trạng "Kết nối không đáng tin cậy" cho từng trình duyệt.
⚠️ Selenium Ghi chú năm 4: Lớp DesiredCapabilities đã bị xóa bỏ trong Selenium 4. Các lớp Tùy chọn của trình duyệt giờ đây truyền tải cùng một thiết lập thông qua một khả năng duy nhất của W3C. chấp nhận chứng chỉ không an toàn.
| trình duyệt | Selenium 4 lớp | Gọi số |
|---|---|---|
| cơ rôm | Tùy chọn Chrome | setAcceptInsecureCerts(true) |
| Firefox | FirefoxTùy chọn | setAcceptInsecureCerts(true) |
| Cạnh | Tùy chọn cạnh | setAcceptInsecureCerts(true) |
| Safari | JavascriptCông chức | kịch bản bỏ qua tạm thời |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
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 cái mới Firefox Hồ sơ Nói "thông tin của tôi".
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 các thuộc tính “setAcceptUntrustedCertificates” và “setAssumeUntrustedCertificateIssuer” trong Fire. 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à "setAssumeUntrustedCertificateNhà phát hành“là các khả năng xử lý lỗi chứng chỉ trong trình duyệt web.
⚠️ Lưu ý về phiên bản: Đoạn mã dựa trên hồ sơ ở trên nhắm mục tiêu Selenium 2 và Selenium 3. Bật Selenium 4. Hồ sơ được đính kèm thông qua FirefoxCác lựa chọn và Firefox Mặc định chấp nhận các chứng chỉ không an toàn.
Xử lý lỗi chứng chỉ SSL trong Chrome
Để xử lý lỗi SSL trong Chrome, đối tượng DesiredCapabilities bên dưới chấp nhận mọi chứng chỉ SSL, do đó người dùng sẽ không thấy cảnh báo chứng chỉ nào trong quá trình chạ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);
⚠️ Lưu ý về phiên bản: CapabilityType.ACCEPT_SSL_CERTS thuộc về giao thức JSON Wire Protocol cũ. Hãy thay thế nó bằng đoạn mã ChromeOptions đã hiển thị trước đó khi chạy. Selenium 4.
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 cách sử dụng javascript.
Để xử lý chứng chỉ SSL trong IE, bạn có thể giải quyết tình huống này theo hai cách.
Phương pháp 1) Nhấp vào liên kết “Tiếp tục truy cập trang web này (không khuyến nghị)” trên cửa sổ trung gian. Liên kết đó có ID là “overridelink”, bạn có thể xác nhận ID này trong ngăn HTML được mở bằng phím F12, như ảnh chụp màn hình bên dưới.
Nhấp vào liên kết bằng phương thức driver.navigate() với JavaNội dung kịch bản như sau:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Phương pháp 2) 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.
⚠️ Lưu ý về phiên bản: Internet Explorer 11 đã ngừng hoạt động vào tháng 6 năm 2022. Hãy thử lại với cùng một trình duyệt. Microsoft Edge Với EdgeOptions, hoặc chạy Edge ở chế độ IE nếu ứng dụng cũ vẫn yêu cầu điều đó.





