Jak obsługiwać certyfikat SSL w Selenium
⚡ Inteligentne podsumowanie
Błędy certyfikatu SSL zatrzymują Selenium test w momencie, gdy przeglądarka odrzuci niezaufany lub wygasły certyfikat, więc każdy skrypt WebDriver musi mieć funkcję specyficzną dla przeglądarki, która akceptuje certyfikat i pozwala na kontynuację automatyzacji.
Certyfikat SSL w Selenium
SSL (Secure Sockets Layer) to standardowy protokół bezpieczeństwa służący do ustanawiania bezpiecznego połączenia pomiędzy serwerem a klientem, którym jest przeglądarka.
Certyfikat SSL chroni dane przesyłane między serwerem a aplikacją kliencką za pomocą silnego szyfrowania i podpisu cyfrowego. Właściciel witryny instaluje certyfikat SSL lub certyfikat podpisywania kodu.
Korzyści z certyfikatu SSL
Korzystanie z certyfikatu SSL ma wiele zalet, takich jak:
- Można zwiększyć zaufanie użytkowników i klientów, aby przyspieszyć rozwój firmy
- Certyfikaty te pomagają zabezpieczyć transakcje online i poufne informacje klientów, takie jak dane kart kredytowych/debetowych itp.
- Certyfikat podpisywania zwykle uzyskuje maksymalną liczbę pobrań i dobre recenzje od użytkowników.
Strony internetowe zabezpieczone protokołem SSL zaczynają się od https:// i możesz zobaczyć ikonę kłódki lub zielony pasek adresu, jeśli połączenie jest bezpiecznie nawiązane.
Na przykład, jeśli chcesz wykonać jakąś transakcję za pośrednictwem bankowości internetowej lub chcesz kupić Mobile telefon za pośrednictwem witryny handlu elektronicznego, takiej jak Flipkart lub Amazon.
Co dzieje się pomiędzy przeglądarką internetową a serwerem
- Przeglądarka próbuje połączyć się ze stroną internetową zabezpieczoną protokołem SSL. Przeglądarka żąda od serwera WWW identyfikacji
- Serwer wysyła do przeglądarki kopię swojego certyfikatu SSL
- Przeglądarka sprawdza, czy certyfikat SSL jest autentyczny. Jeśli tak, wysyła wiadomość do serwera
- Serwer odsyła cyfrowo podpisane potwierdzenie rozpoczęcia sesji szyfrowanej SSL
- Zaszyfrowane dane są udostępniane pomiędzy serwerem a przeglądarką
Numery kart i dane logowania są przesyłane w trakcie sesji, dlatego wymiana danych musi pozostać szyfrowana od początku do końca i nie może zostać przechwycona.
Na przykład kłódka i pasek adresu poniżej potwierdzają, że certyfikat został zaakceptowany.
- Typ https://netbanking.hdfcbank.com/netbanking/ .
- Naciśnij Enter.
- W przeglądarce zobaczysz zielony pasek adresu, jak poniżej:-
W jaki sposób certyfikat SSL tworzy bezpieczne połączenie
Poniższy diagram tracOto uścisk dłoni, a ponumerowane kroki objaśniają każdą wymianę zdań.
- Przeglądarka wysyła żądanie HTTPS do serwera.
- Teraz serwer musi zapewnić przeglądarce pewną identyfikację, aby udowodnić, że jest zaufany. Można tego dokonać przesyłając do przeglądarki kopię swojego certyfikatu SSL.
- Każda przeglądarka ma własną listę Zaufanych urzędów certyfikacji. Przeglądarka sprawdza, czy katalog główny certyfikatu jest zgodny z listą zaufanych urzędów certyfikacji oraz czy certyfikat nie wygasł, nie został odwołany oraz czy nazwa zwyczajowa jest prawidłowa dla witryny internetowej, z którą się łączy.
- Jeśli przeglądarka ufa certyfikatowi, pomiędzy serwerem a przeglądarką tworzona jest zaszyfrowana sesja.
- Serwer i przeglądarka mogą wysyłać zaszyfrowane wiadomości
Rodzaje certyfikatów SSL
Przeglądarka i serwer wykorzystują mechanizm certyfikatu SSL, aby móc nawiązać bezpieczne połączenie. Połączenie to polega na weryfikacji trzech rodzajów certyfikatów.
- Korzeń
- Średniozaawansowany
- Certyfikat serwera
Proces uzyskania Certyfikatu SSL
Proces uzyskiwania certyfikatu SSL obejmuje poniższe kroki: -
- Najpierw musisz utworzyć żądanie CSR (utwórz żądanie podpisania certyfikatu).
- Żądanie CSR tworzy plik danych CSR, który jest wysyłany do wystawcy certyfikatu SSL znanego jako CA (Certificate Authority).
- Urząd certyfikacji używa plików danych CSR do utworzenia certyfikatu SSL dla Twojego serwera.
- Po otrzymaniu certyfikatu SSL należy go zainstalować na swoim serwerze.
- Konieczne jest również zainstalowanie certyfikatu pośredniego, który łączy Twój certyfikat SSL z certyfikatem głównym urzędu certyfikacji.
Poniższy obraz przedstawia wszystkie trzy certyfikaty- Certyfikat główny, pośredni i serwerowy.
Jak weryfikowane są certyfikaty SSL
SSL działa poprzez kombinację programów i procedur szyfrowania/deszyfrowania, które istnieją na komputerze serwera WWW i przeglądarce serwera WWW.
Certyfikat SSL zasadniczo zawiera poniższe informacje.
- Podmiot będący tożsamością właściciela serwisu.
- Informacje o ważności – klucz publiczny i prywatny.
Klucz prywatny i klucz publiczny to dwa unikalnie powiązane klucze kryptograficzne (liczby). Wszystko, co jest zaszyfrowane kluczem publicznym, może zostać odszyfrowane tylko kluczem prywatnym. Przeglądarka wyświetla te pola podczas sprawdzania certyfikatu, jak poniżej.
Jeśli nie zostanie nawiązane bezpieczne połączenie pomiędzy serwerem a klientem ze względu na certyfikat, pojawi się błąd certyfikatu SSL.
Rodzaje błędów certyfikatu SSL
Załóżmy, że wpisujesz żądanie https, a przeglądarka odpowiada komunikatem „To połączenie jest niezaufane” lub „Certyfikat bezpieczeństwa witryny nie jest zaufany”. Przeglądarka nie mogła nawiązać bezpiecznego połączenia z przedstawionym certyfikatem, więc zatrzymuje się i prosi użytkownika o podjęcie odpowiednich działań.
Rodzaje błędów, które prawdopodobnie zobaczysz z powodu certyfikatu w różnych przeglądarkach, mogą być mniej więcej podobne
- naturaFox - To połączenie jest niezaufane
- Google Chrome – Bezpieczeństwo tej witryny nie jest godne zaufania
- Internet Explorer (IE) – Ten certyfikat bezpieczeństwa prezentowany przez tę witrynę nie był zaufany przez zaufany urząd certyfikacji (CA)
Zrzut ekranu poniżej przedstawia komunikat generowany przez niezaufany certyfikat.
Jak radzić sobie z błędem certyfikatu SSL za pomocą Selenium Sterownik internetowy
Załóżmy, że skrypt testowy trafia na stronę „Niezaufane połączenie” powyżej. Skrypt należy dostosować tak, aby obsługiwał wyjątek SSL samodzielnie, wyłącznie poprzez automatyzacja.
Zmiana zależy od używanej instancji przeglądarki i to właśnie tutaj pojawiają się pożądane możliwości. Opcja Pożądane możliwości konfiguruje instancję sterownika Selenium Webdriver, w tym ChromeDriver, FirefoxSterownik i Internet Explorer.
Poniższe kroki można dodać do Selenium skrypt do usuwania komunikatu „Niezaufane połączenie” dla każdej przeglądarki.
⚠️ Selenium Uwaga 4: Klasa DesiredCapabilities została usunięta w Selenium 4. Klasy opcji przeglądarki teraz przenoszą to samo ustawienie za pośrednictwem jednej funkcji W3C, zaakceptujNiezabezpieczoneCerty.
| Przeglądarka | Selenium Klasa 4 | Numer Telefonu |
|---|---|---|
| Chrom | Opcje Chrome | setAcceptInsecureCerts(true) |
| Firefox | FirefoxOpcje | setAcceptInsecureCerts(true) |
| krawędź | Opcje krawędzi | setAcceptInsecureCerts(true) |
| Safari | JavascriptWykonawca | tymczasowy skrypt obejścia |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Błąd obsługi certyfikatu SSL Firefox
Do obsługi błędu certyfikatu SSL w Firefox, musimy wykorzystać pożądane możliwości Selenium Webdriver i wykonaj następujące kroki.
Krok 1) Najpierw musimy stworzyć nowy Firefox profil mowić "mój profil".
Krok 2) Teraz uzyskaj dostęp do myProfile w skrypcie jak poniżej i utwórz plik FirefoxObiekt profilu.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Krok 3) Teraz musimy ustawić właściwości „setAcceptUntrustedCertificates” i „setAssumeUntrustedCertificateIssuer” w programie Fire Fox profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Krok 4) Teraz użyj ogniaFox profil w OgniuFox obiekt kierowcy.
WebDriver driver = new FirefoxDriver (ffProfile)
Uwaga: "setAcceptUntrustedCertificates" oraz "setAssumeUntrustedCertificateIssuer„to możliwości radzenia sobie z błędami certyfikatów w przeglądarkach internetowych.
⚠️ Uwaga dotycząca wersji: powyższy kod oparty na profilu ma na celu Selenium 2 i Selenium 3. Na Selenium 4 profil jest przymocowany przez FirefoxOpcje i Firefox domyślnie akceptuje niezabezpieczone certyfikaty.
Obsługa błędów certyfikatu SSL w przeglądarce Chrome
W celu obsługi błędów SSL w przeglądarce Chrome poniższy obiekt DesiredCapabilities akceptuje wszystkie certyfikaty SSL, więc podczas wykonywania skryptu użytkownik nie zobaczy żadnego ostrzeżenia o certyfikacie.
Musimy utworzyć instancję klasy DesiredCapabilities jak poniżej: -
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ Uwaga dotycząca wersji: CapabilityType.ACCEPT_SSL_CERTS należy do starego protokołu JSON Wire Protocol. Zastąp go fragmentem kodu ChromeOptions pokazanym wcześniej podczas uruchamiania. Selenium 4.
Obsługa błędów certyfikatu SSL w IE
W przeciwieństwie do obsługi certyfikatów SSL w przeglądarce Chrome i Firefoxw IE może być konieczne obsłużenie tego za pomocą javascript.
Aby obsłużyć certyfikat SSL w przeglądarce IE, możesz poradzić sobie na dwa sposoby.
Metoda 1) Kliknij link „Kontynuuj przeglądanie tej witryny (niezalecane)” w okienku interstitial. Ten link ma identyfikator „overridelink”, który możesz sprawdzić w panelu HTML otwartym klawiszem F12, jak pokazano na poniższym zrzucie ekranu.
Kliknij łącze, korzystając z metody Driver.navigate() za pomocą JavaSkrypt poniżej:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Metoda 2) Druga metoda jest bardzo podobna do kodu obsługi protokołu SSL w przeglądarce Chrome.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Powyższy kod pomoże obsłużyć błąd certyfikatu SSL w IE.
⚠️ Uwaga dotycząca wersji: Internet Explorer 11 został wycofany w czerwcu 2022 r. Uruchom ten sam scenariusz w Microsoft Edge z EdgeOptions lub steruj przeglądarką Edge w trybie IE, jeśli starsza aplikacja nadal tego wymaga.





