È possibile testare i certificati SSL lato client con Selenium e qualsiasi browser? Per esempio. È possibile creare un driver Web e fornire certificati fittizi? O usare un profilo di Firefox preparato?Automazione dei certificati SSL lato client nei test di Firefox e selenio
risposta
Creazione profilo di prova Selenio Firefox per i certificati lato client SSL
È necessario preparare il profilo WebDriver Firefox selenio, che ha importato i certificati client in.
In primo luogo si avvia WebDriver con la seguente configurazione nel vostro test code:
# Pre-seeded Firefox profile directory
profile_directory = os.path.join(os.path.dirname(__file__), "..", "..", "certs", "firefox-client-ssl-profile")
self.assertTrue(os.path.exists(profile_directory))
profile = FirefoxProfile(profile_directory)
# Make sure the client side certificate selection does not interrupt the test
# XXX: What happens in other language versions?
profile.set_preference("security.default_personal_cert", "Select Automatically")
self.driver = WebDriver(firefox_profile=profile)
self.selenium_helper = SeleniumHelper(self, self.driver)
self.selenium_helper.driver = self.driver
Avviare test di unità e portarli al punto Il server di test Zope è attivo. Stop test con "import pdb; pdb.set_trace()"
Ora dovresti avere un'istanza di Firefox "WebDriver" di Selenium sullo schermo.
Importare il certificato lato client. Preferenze> Avanzate> Crittografia> Visualizza certificati. Importare "client.p12" dalla fornitura del certificato sul lato client.
Visita nell'URL innescando la finestra di certificato del client in Firefox di WebDriver ::
https://yourservevr/triggers-client-side-certificate-ssl-handshake
Questo dovrebbe richiedere di accettare il certificato lato client sul server di test. Accetta tutto manualmente.
Visitare nel menu Guida> Informazioni sulla risoluzione dei problemi> Nozioni di base sull'applicazione> Mostra nel Finder. Apre la directory temporanea contenente i file del profilo attivo di Webdriver.
Copia file profilo Firefox cert8.db
e key3.db
nel pacchetto di prova dell'unità cartella seme del profilo di Firefox di WebDriver. Questa è la cartella in cui Selenium preleva i semi per il driver web di Firefox all'avvio del test firefox-client-ssl-profile
.
Interrompe i test. Riavvia i test. Corri fino alla pausa di nuovo. In Firefox di Webdriver , vedi nelle impostazioni che ora contiene i certificati che hai approvato nell'ultima esecuzione in Preferenze> Avanzate> Crittografia> Visualizza certificati.
Maggiori informazioni
Non so se questo aiuta, ma è possibile modificare alcune delle preferenze nel profilo. In Java, puoi farlo.
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("default"); //change profile name. there is a note somewhere on how to change it
profile.setPreference(uaKey, uaValue);
profile.setAcceptUntrustedCertificates(acceptUntrustedSsl);
Non sono sicuro che sia ciò di cui hai bisogno.
Da Firefox versione 58 sarà cert9.db e key4.db. Con Visual Studio assicurati che vengano contrassegnati come "Copia sempre" nelle proprietà per garantire che questi file vengano copiati durante la creazione. – 321X