Umgang mit SSL-Zertifikaten in Selenium
⚡ Intelligente Zusammenfassung
SSL-Zertifikatfehler stoppen einen Selenium Testen Sie den Moment, in dem ein Browser ein nicht vertrauenswürdiges oder abgelaufenes Zertifikat ablehnt. Daher benötigt jedes WebDriver-Skript eine browserspezifische Funktion, die das Zertifikat akzeptiert und die Fortsetzung der Automatisierung ermöglicht.
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.
Ein SSL-Zertifikat schützt die Datenübertragung zwischen Server und Client-Anwendung durch starke Verschlüsselung und eine digitale Signatur. Der Website-Betreiber installiert entweder ein SSL-Zertifikat oder ein Code-Signatur-Zertifikat.
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
Da Kartennummern und Anmeldeinformationen während dieser Sitzung übertragen werden, muss die gesamte Kommunikation durchgängig verschlüsselt bleiben und darf nicht abgefangen werden.
Beispielsweise bestätigen das Schloss-Symbol und die Adressleiste unten, dass das Zertifikat akzeptiert wurde.
- 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?
Das untenstehende Diagramm tracEs ist der Handschlag, und die darauf folgenden nummerierten Schritte erklären jeden einzelnen Austausch.
- 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
- Fortgeschrittener
- 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 zusammengehörige kryptografische Schlüssel (Zahlen). Alles, was mit einem öffentlichen Schlüssel verschlüsselt wurde, kann nur mit einem privaten Schlüssel entschlüsselt werden. Ein Browser zeigt diese Felder bei der Zertifikatsprüfung an, wie unten dargestellt.
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 ein und der Browser antwortet mit „Diese Verbindung ist nicht vertrauenswürdig“ oder „Das Sicherheitszertifikat der Website ist nicht vertrauenswürdig“. Der Browser konnte mit dem vorgelegten Zertifikat keine sichere Verbindung herstellen, bricht den Vorgang ab 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.
Der folgende Screenshot zeigt das Interstitial, das ein nicht vertrauenswürdiges Zertifikat erzeugt.
So behandeln Sie SSL-Zertifikatsfehler mit Selenium Webtreiber
Angenommen, die Testskript Die oben genannte Seite „Nicht vertrauenswürdige Verbindung“ wird angezeigt. Das Skript muss so angepasst werden, dass es die SSL-Ausnahme selbstständig und ausschließlich über die Automatisierung.
Die Änderung hängt von der verwendeten Browserinstanz ab, und hier kommen die gewünschten Funktionen ins Spiel. Die gewünschten Funktionen konfigurieren die Treiberinstanz von Selenium Webdriver, einschließlich ChromeDriver, FirefoxDriver und Internet Explorer.
Die folgenden Schritte können hinzugefügt werden Selenium Skript zum Beheben der „Nicht vertrauenswürdige Verbindung“-Situation für jeden Browser.
⚠️ Selenium Anmerkung für 4: Die Klasse DesiredCapabilities wurde entfernt in Selenium 4. Die Browser-Optionsklassen übertragen nun dieselbe Einstellung über eine einzige W3C-Funktion. Inunsichere Zertifikate akzeptieren.
| Browser | Selenium 4-Klasse | Telefon |
|---|---|---|
| Chrome | ChromeOptions | setAcceptInsecureCerts(true) |
| Firefox | FirefoxOptionen | setAcceptInsecureCerts(true) |
| Marktumfeld | EdgeOptions | setAcceptInsecureCerts(true) |
| Safari | JavascriptTestamentsvollstrecker | temporäres Bypass-Skript |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
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 erstellen. Firefox profile sagen "mein Profil".
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) Nun müssen wir die Eigenschaften „setAcceptUntrustedCertificates“ und „setAssumeUntrustedCertificateIssuer“ im Fire festlegen. Fox Profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Schritt 4) Verwenden Sie nun das FeuerFox Profil im FeuerFox Treiberobjekt.
WebDriver driver = new FirefoxDriver (ffProfile)
Hinweis: "setAcceptUntrustedCertificates" und "setAssumeUntrustedCertificateIssuer„sind Fähigkeiten zur Behandlung von Zertifikatsfehlern in Webbrowsern.“
⚠️ Versionshinweis: Der oben genannte profilbasierte Code zielt darauf ab Selenium 2 und Selenium 3. Auf Selenium 4. Ein Profil wird angehängt durch FirefoxOptionen und Firefox Akzeptiert standardmäßig unsichere Zertifikate.
Fehlerbehandlung bei SSL-Zertifikaten in Chrome
Zur Behandlung von SSL-Fehlern in Chrome akzeptiert das unten stehende DesiredCapabilities-Objekt jedes SSL-Zertifikat, sodass der Benutzer während der Ausführung keine Zertifikatswarnung sieht.
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);
⚠️ Versionshinweis: CapabilityType.ACCEPT_SSL_CERTS gehört zum alten JSON Wire Protocol. Ersetzen Sie es beim Ausführen durch den zuvor gezeigten ChromeOptions-Ausschnitt. Selenium 4.
Fehlerbehandlung bei SSL-Zertifikaten im IE
Im Gegensatz zur Handhabung von SSL-Zertifikaten im Chrome-Browser und FirefoxIm Internet Explorer müssen Sie dies möglicherweise folgendermaßen handhaben: Javascript.
Um SSL-Zertifikate im Internet Explorer zu handhaben, gibt es zwei Möglichkeiten.
Methode 1) Klicken Sie im eingeblendeten Fenster auf den Link „Weiter zu dieser Website (nicht empfohlen)“. Dieser Link trägt die ID „overridelink“, die Sie im mit F12 geöffneten HTML-Bereich überprüfen können, wie der Screenshot unten zeigt.
Klicken Sie mit der Methode „driver.navigate()“ auf den Link JavaDas Skript lautet wie folgt:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Methode 2) Die zweite Methode ähnelt stark dem SSL-Handling-Code von Chrome.
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.
⚠️ Versionshinweis: Internet Explorer 11 wurde im Juni 2022 eingestellt. Führen Sie dasselbe Szenario durch gegen Microsoft Edge mit EdgeOptions oder Edge im IE-Modus ausführen, wenn eine ältere Anwendung dies noch erfordert.





