Πώς να χειριστείτε το πιστοποιητικό SSL Selenium
⚡ Έξυπνη Σύνοψη
Σφάλματα πιστοποιητικού SSL σταματούν ένα Selenium Δοκιμάστε τη στιγμή που ένα πρόγραμμα περιήγησης απορρίπτει ένα μη αξιόπιστο ή ληγμένο πιστοποιητικό, επομένως κάθε σενάριο WebDriver χρειάζεται μια δυνατότητα ειδική για το πρόγραμμα περιήγησης που αποδέχεται το πιστοποιητικό και επιτρέπει τη συνέχιση του αυτοματισμού.
Πιστοποιητικό SSL σε Selenium
Το SSL (Secure Sockets Layer) είναι ένα τυπικό πρωτόκολλο ασφαλείας για τη δημιουργία μιας ασφαλούς σύνδεσης μεταξύ του διακομιστή και του πελάτη που είναι ένα πρόγραμμα περιήγησης.
Ένα πιστοποιητικό SSL προστατεύει τα δεδομένα που μετακινούνται μεταξύ του διακομιστή και της εφαρμογής-πελάτη με ισχυρή κρυπτογράφηση και ψηφιακή υπογραφή. Ο κάτοχος του ιστότοπου εγκαθιστά είτε ένα πιστοποιητικό SSL είτε ένα πιστοποιητικό υπογραφής κώδικα.
Πλεονεκτήματα του πιστοποιητικού SSL
Υπάρχουν πολλά οφέλη από τη χρήση του πιστοποιητικού SSL όπως,
- Κάποιος μπορεί να αυξήσει την εμπιστοσύνη των χρηστών και των πελατών τους προκειμένου να ενισχύσει την ανάπτυξη της επιχείρησης γρήγορα
- Αυτά τα πιστοποιητικά βοηθούν στην ασφάλεια των ηλεκτρονικών συναλλαγών και των ευαίσθητων πληροφοριών πελατών, όπως δεδομένα πιστωτικής/χρεωστικής κάρτας κ.λπ.
- Η υπογραφή πιστοποιητικού τείνει να λαμβάνει μέγιστο αριθμό λήψεων και καλές κριτικές από τους χρήστες.
Οι ιστότοποι με ασφάλεια SSL ξεκινούν με https:// και μπορείτε να δείτε ένα εικονίδιο κλειδώματος ή μια πράσινη γραμμή διευθύνσεων εάν η σύνδεση έχει δημιουργηθεί με ασφάλεια.
Για παράδειγμα, εάν θέλετε να κάνετε κάποια συναλλαγή μέσω net banking ή θέλετε να αγοράσετε ένα Κινητό τηλέφωνο μέσω ιστότοπου ηλεκτρονικού εμπορίου όπως το Flipkart ή Amazon.
Τι συμβαίνει μεταξύ του προγράμματος περιήγησης Ιστού και του διακομιστή
- Ένα πρόγραμμα περιήγησης προσπαθεί να συνδεθεί με έναν ιστότοπο που είναι ασφαλισμένος με SSL. Το πρόγραμμα περιήγησης ζητά από τον διακομιστή ιστού να αναγνωρίσει τον εαυτό του
- Ο διακομιστής στέλνει στο πρόγραμμα περιήγησης ένα αντίγραφο του πιστοποιητικού SSL του
- Το πρόγραμμα περιήγησης επαληθεύει εάν το πιστοποιητικό SSL είναι γνήσιο. Εάν ναι, στέλνει ένα μήνυμα στον διακομιστή
- Ο διακομιστής στέλνει μια ψηφιακά υπογεγραμμένη επιβεβαίωση για να ξεκινήσει μια κρυπτογραφημένη περίοδος λειτουργίας SSL
- Τα κρυπτογραφημένα δεδομένα μοιράζονται μεταξύ του διακομιστή και του προγράμματος περιήγησης
Οι αριθμοί καρτών και τα διαπιστευτήρια σύνδεσης ταξιδεύουν κατά τη διάρκεια αυτής της συνεδρίας, επομένως η ανταλλαγή πρέπει να παραμένει κρυπτογραφημένη από άκρο σε άκρο και δεν μπορεί να υποκλαπεί.
Για παράδειγμα, το λουκέτο και η γραμμή διευθύνσεων παρακάτω επιβεβαιώνουν ότι το πιστοποιητικό έγινε δεκτό.
- Χαρακτηριστικά https://netbanking.hdfcbank.com/netbanking/ .
- Hit Enter.
- Θα δείτε μια πράσινη γραμμή διευθύνσεων στο πρόγραμμα περιήγησης όπως παρακάτω:-
Πώς το πιστοποιητικό SSL δημιουργεί μια ασφαλή σύνδεση
Το παρακάτω διάγραμμα tracη χειραψία και τα αριθμημένα βήματα που ακολουθούν εξηγούν κάθε ανταλλαγή.
- πρόγραμμα περιήγησης στέλνει αίτημα HTTPS στον διακομιστή.
- Τώρα ο διακομιστής πρέπει να παρέχει κάποια ταυτότητα στο πρόγραμμα περιήγησης για να αποδείξει ότι είναι αξιόπιστο. Αυτό μπορεί να γίνει στέλνοντας ένα αντίγραφο του πιστοποιητικού SSL στο πρόγραμμα περιήγησης.
- Κάθε πρόγραμμα περιήγησης έχει τη δική του λίστα με αξιόπιστες ΑΠ. Το πρόγραμμα περιήγησης ελέγχει τη ρίζα του πιστοποιητικού έναντι της λίστας με τις αξιόπιστες ΑΠ και ότι το πιστοποιητικό δεν έχει λήξει, δεν έχει ανακληθεί και ότι το κοινό όνομα είναι έγκυρο για τον ιστότοπο στον οποίο συνδέεται.
- Εάν το πρόγραμμα περιήγησης εμπιστεύεται το πιστοποιητικό, δημιουργείται μια κρυπτογραφημένη περίοδος λειτουργίας μεταξύ του διακομιστή και του προγράμματος περιήγησης.
- Ο διακομιστής και το πρόγραμμα περιήγησης μπορούν να στείλουν κρυπτογραφημένα μηνύματα
Τύποι Πιστοποιητικά SSL
Το πρόγραμμα περιήγησης και ο διακομιστής χρησιμοποιούν μηχανισμό πιστοποιητικού SSL για να μπορέσουν να δημιουργήσουν μια ασφαλή σύνδεση. Αυτή η σύνδεση περιλαμβάνει επαλήθευση τριών τύπων πιστοποιητικών.
- Ρίζα
- Ενδιάμεσος
- Πιστοποιητικό διακομιστή
Διαδικασία λήψης πιστοποιητικού SSL
Η διαδικασία λήψης πιστοποιητικού SSL περιλαμβάνει τα παρακάτω βήματα:
- Αρχικά, πρέπει να δημιουργήσετε αίτημα CSR (δημιουργία αίτησης υπογραφής πιστοποιητικού).
- Το αίτημα CSR δημιουργεί αρχείο δεδομένων CSR, το οποίο αποστέλλεται στον εκδότη πιστοποιητικού SSL γνωστό ως CA (Αρχή πιστοποιητικών).
- Η αρχή αρχής χρησιμοποιεί τα αρχεία δεδομένων CSR για να δημιουργήσει πιστοποιητικό SSL για τον διακομιστή σας.
- Αφού λάβετε το πιστοποιητικό SSL, πρέπει να το εγκαταστήσετε στον διακομιστή σας.
- Απαιτείται επίσης ένα ενδιάμεσο πιστοποιητικό για να εγκατασταθεί το οποίο συνδέει το δικό σας πιστοποιητικό SSL με το πιστοποιητικό ρίζας της CA.
Η παρακάτω εικόνα αντιπροσωπεύει και τα τρία πιστοποιητικά- Πιστοποιητικό Root, Intermediate και Server.
Πώς επαληθεύονται τα πιστοποιητικά SSL
Το SSL λειτουργεί μέσω ενός συνδυασμού προγραμμάτων και ρουτίνας κρυπτογράφησης/αποκρυπτογράφησης που υπάρχουν στον υπολογιστή διακομιστή ιστού και στο πρόγραμμα περιήγησης διακομιστή ιστού.
Το πιστοποιητικό SSL περιέχει βασικά τις παρακάτω πληροφορίες.
- Θέμα που είναι η ταυτότητα του ιδιοκτήτη του ιστότοπου.
- Πληροφορίες εγκυρότητας - ένα δημόσιο και ένα ιδιωτικό κλειδί.
Το ιδιωτικό και το δημόσιο κλειδί είναι δύο μοναδικά συσχετιζόμενα κρυπτογραφικά κλειδιά (αριθμοί). Ό,τι κρυπτογραφείται με δημόσιο κλειδί μπορεί να αποκρυπτογραφηθεί μόνο με ιδιωτικό κλειδί. Ένα πρόγραμμα περιήγησης εμφανίζει αυτά τα πεδία κατά τον έλεγχο του πιστοποιητικού, όπως παρακάτω.
Όταν δεν έχει δημιουργηθεί μια ασφαλής σύνδεση μεταξύ του διακομιστή και του πελάτη λόγω του πιστοποιητικού, θα εμφανιστεί το ακόλουθο σφάλμα πιστοποιητικού SSL.
Τύποι σφαλμάτων πιστοποιητικού SSL
Ας υποθέσουμε ότι πληκτρολογείτε ένα αίτημα https και το πρόγραμμα περιήγησης απαντά με το μήνυμα "Αυτή η σύνδεση δεν είναι αξιόπιστη" ή "Το πιστοποιητικό ασφαλείας του ιστότοπου δεν είναι αξιόπιστο". Το πρόγραμμα περιήγησης δεν μπόρεσε να δημιουργήσει μια ασφαλή σύνδεση με το πιστοποιητικό που παρουσιάστηκε, επομένως σταματά και ζητά από τον χρήστη να προβεί στις κατάλληλες ενέργειες.
Οι τύποι σφαλμάτων που πιθανόν να δείτε λόγω πιστοποιητικού σε διαφορετικά προγράμματα περιήγησης μπορεί να είναι κάπως έτσι
- ΦωτιάFox - Η σύνδεση δεν είναι έμπιστη
- Google Chrome – Η ασφάλεια αυτού του ιστότοπου δεν είναι αξιόπιστη
- Internet Explorer (IE) – Αυτό το πιστοποιητικό ασφαλείας που παρουσιάζεται από αυτόν τον ιστότοπο δεν ήταν αξιόπιστο από αξιόπιστη αρχή έκδοσης πιστοποιητικών (CA)
Το παρακάτω στιγμιότυπο οθόνης δείχνει την ενδιάμεση διαφήμιση που παράγει ένα μη αξιόπιστο πιστοποιητικό.
Πώς να χειριστείτε το σφάλμα πιστοποιητικού SSL χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web
Ας υποθέσουμε ότι το σενάριο δοκιμής εμφανίζεται η σελίδα "Μη αξιόπιστη σύνδεση" παραπάνω. Το σενάριο πρέπει να ρυθμιστεί έτσι ώστε να φροντίζει μόνο του την εξαίρεση SSL, αποκλειστικά μέσω αυτοματοποίηση.
Η αλλαγή εξαρτάται από την παρουσία του προγράμματος περιήγησης που χρησιμοποιείται και εδώ είναι που οι επιθυμητές δυνατότητες έρχονται στο προσκήνιο. Οι Επιθυμητές Δυνατότητες διαμορφώνουν την παρουσία του προγράμματος οδήγησης του Selenium Webdriver, συμπεριλαμβανομένου του ChromeDriver, FirefoxΠρόγραμμα οδήγησης και internet explorer.
Τα παρακάτω βήματα μπορούν να προστεθούν σε ένα Selenium script για να διαγράψετε την κατάσταση "Μη αξιόπιστη σύνδεση" για κάθε πρόγραμμα περιήγησης.
⚠️ Selenium Σημείωση 4: η κλάση DesiredCapabilities αφαιρέθηκε στο Selenium 4. Οι κλάσεις Επιλογών του προγράμματος περιήγησης φέρουν πλέον την ίδια ρύθμιση μέσω μιας ενιαίας δυνατότητας W3C, acceptInsecureCerts.
| πρόγραμμα περιήγησης | Selenium Κατηγορία 4 | Καλέστε |
|---|---|---|
| Chrome | Επιλογές Chrome | setAcceptInsecureCerts(true) |
| Firefox | FirefoxΕπιλογές | setAcceptInsecureCerts(true) |
| άκρη | EdgeOptions | setAcceptInsecureCerts(true) |
| Safari | JavascriptΕκτελεστής διαθήκης | προσωρινό σενάριο παράκαμψης |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Χειρισμός σφάλματος πιστοποιητικού SSL Firefox
Για τον χειρισμό του σφάλματος πιστοποιητικού SSL σε Firefox, πρέπει να χρησιμοποιήσουμε τις επιθυμητές δυνατότητες του Selenium Webdriver και ακολουθήστε τα παρακάτω βήματα.
Βήμα 1) Αρχικά, πρέπει να δημιουργήσουμε ένα νέο Firefox λογαριασμό σας λένε "το ΠΡΟΦΙΛ μου".
Βήμα 2) Τώρα αποκτήστε πρόσβαση στο myProfile στο σενάριο όπως παρακάτω και δημιουργήστε το FirefoxΑντικείμενο προφίλ.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Βήμα 3) Τώρα πρέπει να ορίσουμε τις ιδιότητες "setAcceptUntrustedCertificates" και "setAssumeUntrustedCertificateIssuer" στο Fire. Fox προφίλ.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Βήμα 4) Τώρα χρησιμοποιήστε τη ΦωτιάFox προφίλ στη ΦωτιάFox αντικείμενο προγράμματος οδήγησης.
WebDriver driver = new FirefoxDriver (ffProfile)
Σημείωση: "setAcceptUntrustedCertificates" και "setAssumeUntrustedCertificateIssuer«είναι δυνατότητες για τη διαχείριση σφαλμάτων πιστοποιητικών σε προγράμματα περιήγησης ιστού.»
⚠️ Σημείωση έκδοσης: ο κώδικας που βασίζεται σε προφίλ παραπάνω στόχους Selenium 2 και Selenium 3. Επί Selenium 4 ένα προφίλ επισυνάπτεται μέσω FirefoxΕπιλογές και Firefox δέχεται μη ασφαλή πιστοποιητικά από προεπιλογή.
Χειρισμός σφαλμάτων πιστοποιητικού SSL στο Chrome
Για τον χειρισμό σφάλματος SSL στο Chrome, το αντικείμενο DesiredCapabilities παρακάτω δέχεται κάθε πιστοποιητικό SSL, επομένως ο χρήστης δεν βλέπει καμία προειδοποίηση πιστοποιητικού κατά την εκτέλεση.
Πρέπει να δημιουργήσουμε παράδειγμα της κλάσης DesiredCapabilities ως εξής:-
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ Σημείωση έκδοσης: Το CapabilityType.ACCEPT_SSL_CERTS ανήκει στο παλιό πρωτόκολλο JSON Wire. Αντικαταστήστε το με το απόσπασμα ChromeOptions που εμφανίστηκε νωρίτερα κατά την εκτέλεση. Selenium 4.
Χειρισμός σφαλμάτων πιστοποιητικού SSL στον IE
Σε αντίθεση με το χειρισμό πιστοποιητικών SSL στο πρόγραμμα περιήγησης Chrome και Firefox, στον IE, ίσως χρειαστεί να το χειριστείτε χρησιμοποιώντας javascript.
Για να χειριστείτε ένα πιστοποιητικό SSL στον IE, μπορείτε να χειριστείτε αυτήν την κατάσταση με δύο τρόπους.
Μέθοδος 1) Κάντε κλικ στον σύνδεσμο "Συνέχεια σε αυτόν τον ιστότοπο (δεν συνιστάται)" στην παρενθετική διαφήμιση. Αυτός ο σύνδεσμος φέρει το αναγνωριστικό "overridelink", το οποίο μπορείτε να επιβεβαιώσετε στο παράθυρο HTML που ανοίγει με το πλήκτρο F12, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Κάντε κλικ στον σύνδεσμο χρησιμοποιώντας τη μέθοδο driver.navigate() with JavaΣενάριο όπως παρακάτω: -
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Μέθοδος 2) Η δεύτερη μέθοδος είναι αρκετά παρόμοια με τον κώδικα χειρισμού SSL του Chrome.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Ο παραπάνω κώδικας θα βοηθήσει στον χειρισμό του σφάλματος πιστοποιητικού SSL στον IE.
⚠️ Σημείωση έκδοσης: Ο Internet Explorer 11 αποσύρθηκε τον Ιούνιο του 2022. Εκτελέστε το ίδιο σενάριο σε Microsoft Edge με το EdgeOptions ή οδηγήστε το Edge σε λειτουργία IE όπου μια παλαιότερη εφαρμογή το απαιτεί ακόμα.





