Umgang mit SSL-Zertifikaten in Selenium
SSL-Zertifikat in Selenium
SSL (Secure Sockets Layer) ist ein Standardsicherheitsprotokoll zum Aufbau einer sicheren Verbindung zwischen dem Server und dem Client, bei dem es sich um einen Browser handelt.
Das SSL-Zertifikat (Secure Socket Layer) gewährleistet die sichere Datenübertragung zwischen Server und Client-Anwendung mithilfe eines starken Verschlüsselungsstandards oder einer digitalen Signatur. Sie müssen ein SSL-Zertifikat oder ein Codesignaturzertifikat installieren.
Vorteile des SSL-Zertifikats
Die Verwendung eines SSL-Zertifikats bietet eine Reihe von Vorteilen, wie zum Beispiel:
- Man kann das Vertrauen seiner Benutzer und Kunden stärken, um das Wachstum des Unternehmens schnell voranzutreiben
- Diese Zertifikate tragen dazu bei, Online-Transaktionen und vertrauliche Kundeninformationen wie Kredit-/Debitkartendaten usw. zu schützen.
- Signierungszertifikate erzielen in der Regel die meisten Downloads und gute Bewertungen von Benutzern.
SSL-gesicherte Websites beginnen mit https://und Sie können ein Schlosssymbol oder eine grüne Adressleiste sehen, wenn die Verbindung sicher hergestellt ist.
Wenn Sie beispielsweise eine Transaktion über Net Banking abwickeln oder etwas kaufen möchten Mobil Telefonieren Sie über eine E-Commerce-Website wie Flipkart oder Amazon.
Was passiert zwischen dem Webbrowser und dem Server?
- Ein Browser versucht, eine Verbindung zu einer mit SSL gesicherten Website herzustellen. Der Browser fordert den Webserver auf, sich zu identifizieren
- Der Server sendet dem Browser eine Kopie seines SSL-Zertifikats
- Der Browser überprüft, ob das SSL-Zertifikat echt ist. Wenn ja, sendet es eine Nachricht an den Server
- Der Server sendet eine digital signierte Bestätigung zurück, um eine SSL-verschlüsselte Sitzung zu starten
- Die verschlüsselten Daten werden zwischen dem Server und dem Browser geteilt
Dabei müssen Sie vertrauliche Informationen wie Kreditkartennummern oder Anmeldeinformationen übermitteln und diese müssen sicher übertragen werden, damit sie nicht gehackt oder abgefangen werden können.
Zum Beispiel
- Typ https://netbanking.hdfcbank.com/netbanking/ .
- Drücken Sie die Eingabetaste.
- Im Browser wird wie folgt eine grüne Adressleiste angezeigt: –
Wie stellt das SSL-Zertifikat eine sichere Verbindung her?
- Browser sendet eine HTTPS-Anfrage an den Server.
- Jetzt muss der Server dem Browser eine Identifikation bereitstellen, um zu beweisen, dass er vertrauenswürdig ist. Dies kann durch Senden einer Kopie seines SSL-Zertifikats an den Browser erfolgen.
- Jeder Browser verfügt über eine eigene Liste vertrauenswürdiger Zertifizierungsstellen. Der Browser vergleicht den Zertifikatsstamm mit seiner Liste vertrauenswürdiger Zertifizierungsstellen und prüft, ob das Zertifikat nicht abgelaufen und nicht widerrufen ist und ob der allgemeine Name für die Website gültig ist, zu der er eine Verbindung herstellt.
- Wenn der Browser dem Zertifikat vertraut, wird eine verschlüsselte Sitzung zwischen dem Server und dem Browser erstellt.
- Server und Browser können verschlüsselte Nachrichten senden
Arten von SSL-Zertifikaten
Browser und Server verwenden den SSL-Zertifikatmechanismus, um eine sichere Verbindung herstellen zu können. Diese Verbindung beinhaltet die Überprüfung von drei Arten von Zertifikaten.
- Wurzel
- Mittel
- Serverzertifikat
Prozess zum Erhalten eines SSL-Zertifikats
Der Prozess zum Erhalten eines SSL-Zertifikats umfasst die folgenden Schritte: –
- Zuerst müssen Sie eine CSR-Anfrage (Certificate Signing Request) erstellen.
- Bei der CSR-Anfrage wird eine CSR-Datendatei erstellt, die an den Aussteller des SSL-Zertifikats namens CA (Certificate Authority) gesendet wird.
- Die Zertifizierungsstelle verwendet die CSR-Datendateien, um ein SSL-Zertifikat für Ihren Server zu erstellen.
- Nachdem Sie das SSL-Zertifikat erhalten haben, müssen Sie es auf Ihrem Server installieren.
- Außerdem muss ein Zwischenzertifikat installiert werden, das Ihr SSL-Zertifikat mit dem Stammzertifikat der Zertifizierungsstelle verknüpft.
Das Bild unten zeigt alle drei Zertifikate. Stamm-, Zwischen- und Serverzertifikat.
So werden SSL-Zertifikate überprüft
SSL funktioniert über eine Kombination aus Programmen und Verschlüsselungs-/Entschlüsselungsroutinen, die auf dem Webserver-Computer und im Webserver-Browser vorhanden sind.
Das SSL-Zertifikat enthält grundsätzlich die folgenden Informationen.
- Betreff: die Identität des Website-Eigentümers.
- Gültigkeitsinformationen – ein öffentlicher und ein privater Schlüssel.
Der private und der öffentliche Schlüssel sind zwei eindeutig verknüpfte kryptografische Schlüssel (Zahlen). Alles, was mit einem öffentlichen Schlüssel verschlüsselt ist, kann nur mit einem privaten Schlüssel entschlüsselt werden.
Wenn aufgrund des Zertifikats keine sichere Verbindung zwischen Server und Client hergestellt werden kann, wird der folgende SSL-Zertifikatsfehler angezeigt.
Arten von SSL-Zertifikatfehlern
Angenommen, Sie geben eine HTTPS-Anfrage in den Browser ein und erhalten je nach verwendetem Browser eine Meldung wie „Diese Verbindung ist nicht vertrauenswürdig“ oder „Das Sicherheitszertifikat der Website ist nicht vertrauenswürdig“. Dann liegt ein solcher Fehler an einem SSL-Zertifikatsfehler.
Wenn der Browser nun keine sichere Verbindung mit dem angeforderten Zertifikat herstellen kann, löst der Browser wie unten beschrieben die Ausnahme „Nicht vertrauenswürdige Verbindung“ aus und fordert den Benutzer auf, entsprechende Maßnahmen zu ergreifen.
Die Arten von Fehlern, die aufgrund des Zertifikats in verschiedenen Browsern wahrscheinlich auftreten, können in etwa wie folgt aussehen
- FeuerFox - Diese Verbindung ist nicht vertrauenswürdig
- Google Chrome -Die Sicherheit dieser Website ist nicht vertrauenswürdig
- Internet Explorer (IE) – Dieses von dieser Website präsentierte Sicherheitszertifikat wurde von einer vertrauenswürdigen Zertifizierungsstelle (CA) nicht als vertrauenswürdig eingestuft.
So behandeln Sie SSL-Zertifikatsfehler mit Selenium Webtreiber
Angenommen, wir haben einige Testskripte geschrieben und sind beim Ausführen des Skripts auf die oben beschriebene Situation „Nicht vertrauenswürdige Verbindung“ gestoßen. Wie gehen wir dann mit der Ausnahme rein durch Automatisierung um?
In einem solchen Fall müssen wir unser Skript so anpassen, dass es sich selbst um die SSL-Ausnahme kümmert.
Die Skripte müssen entsprechend dem Typ der von uns verwendeten Browserinstanz geändert werden. Dies sind die gewünschten Funktionen.
„Desired Capabilities“ wird zum Konfigurieren der Treiberinstanz von verwendet Selenium Webtreiber. Über die gewünschten Funktionen kann man alle Treiberinstanzen wie ChromeDriver konfigurieren. FirefoxTreiber und Internet Explorer.
Derzeit haben wir keine spezifische URL zum Erstellen des obigen Szenarios, aber ich stelle Schritte bereit, die wir hinzufügen können Selenium Skript zur Behandlung der oben genannten Situation „Nicht vertrauenswürdige Verbindung“.
Fehlerbehandlung bei SSL-Zertifikaten in Firefox
Zur Behandlung von SSL-Zertifikatfehlern in Firefox, wir müssen die gewünschten Fähigkeiten nutzen Selenium Webdriver und befolgen Sie die folgenden Schritte.
Schritt 1) Zuerst müssen wir ein neues Firefox-Profil erstellen, sagen wir „mein Profil„. Sie können bei Google nachsehen, wie man ein Firefox-Profil erstellt. Es ist ganz einfach.
Schritt 2) Greifen Sie nun wie unten beschrieben im Skript auf myProfile zu und erstellen Sie das FirefoxProfilobjekt.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Schritt 3) Jetzt müssen wir „setAcceptUntrustedCertificates" und "setAssumeUntrustedCertificateIssuer„Eigenschaften im Feuer Fox Profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Schritt 4) Verwenden Sie nun das FeuerFox Profil im FeuerFox Treiberobjekt.
WebDriver driver = new FirefoxDriver (ffProfile)
Note: „setAcceptUntrustedCertificates“ und „setAssumeUntrustedCertificateIssuer" sind Funktionen zur Behandlung von Zertifikatfehlern in Webbrowsern.
Fehlerbehandlung bei SSL-Zertifikaten in Chrome
Zur Behandlung von SSL-Fehlern in Chrome müssen wir die gewünschten Funktionen von verwenden Selenium Webtreiber. Der folgende Code hilft dabei, alle SSL-Zertifikate in Chrome zu akzeptieren, und der Benutzer erhält bei Verwendung dieses Codes keine Fehlermeldung im Zusammenhang mit dem SSL-Zertifikat.
Wir müssen eine Instanz der DesiredCapabilities-Klasse wie folgt erstellen:
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
Fehlerbehandlung bei SSL-Zertifikaten im IE
Im Gegensatz zur Handhabung von SSL-Zertifikaten im Chrome-Browser und Firefox, im IE müssen Sie es möglicherweise mit Javascript handhaben.
Um SSL-Zertifikate im IE zu handhaben, können Sie diese Situation auf zwei Arten bewältigen:
- Klicken Sie dabei auf den Link „Weiter zu dieser Internetseite (nicht empfohlen)". Im Folgenden erfahren Sie, wie Sie mit SSL-Fehlern im Internet Explorer umgehen.
Beachten Sie den SSL-Zertifikatfehler im IE-Browser. Dort finden Sie den Link „Weiter zu dieser Website (nicht empfohlen)“. Dieser Link hat die ID „Link überschreiben“. Sie können die ID im HTML-Modus mit F12 anzeigen.
Klicken Sie mit der Methode „driver.navigate()“ auf den Link JavaSkript wie nachstehend :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- Die zweite Methode ist dem Chrome-SSL-Handhabungscode ziemlich ähnlich
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Der obige Code hilft bei der Behandlung von SSL-Zertifikatfehlern im IE.
Zusammenfassung
- SSL (Secure Sockets Layer) ist ein Standardsicherheitsprotokoll zum Aufbau einer sicheren Verbindung zwischen dem Server und dem Client
- Browser und Server verwenden den SSL-Zertifikatmechanismus, um eine sichere Verbindung herstellen zu können.
- SSL funktioniert über eine Kombination aus Programmen und Verschlüsselungs-/Entschlüsselungsroutinen, die auf dem Webserver-Computer und im Webserver-Browser vorhanden sind.
- Wenn aufgrund eines SSL-Zertifikats keine sichere Verbindung zwischen Server und Client hergestellt werden kann, tritt ein Fehler auf
- Wir müssen unser Skript so anpassen, dass es sich selbst um SSL-Ausnahmen/Fehler kümmert Selenium Web-Treiber.