2016-07-12 84 views
6

Ho esaminato tutte le chiavi possibili in tutti i file json in base alla risposta in Python Selenium - What are possible keys in FireFox webdriver profile preferences, ma non ho trovato una chiave per specificare il certificato client in utilizzare nella mia connessione SSL.Python Selenium - Come specificare un certificato client da utilizzare nell'autenticazione SSL client

Ho cercato su questo, ma non ho potuto trovare la risposta esatta. Ho scoperto che è necessario aggiungere il certificato al profilo FireFox in base alla risposta in How to import SSL certificates for Firefox with Selenium [in Python]?, ma in questo caso sono bloccato, non riesco a capire come deve essere aggiunto esattamente questo certificato.

Si prega di notare che non sto parlando di fidarsi del certificato di un server. Per impostazione predefinita, quando si avvia una connessione SSL, viene utilizzato come certificato client un certificato locale assegnato alla workstation. Qui ho bisogno di utilizzare un nuovo certificato/coppia di chiavi private per la mia connessione SSL. Ho bisogno di fare questo per testare l'autenticazione del client in SSL.

Così, in sintesi, sto cercando qualche configurazione che assomiglia a questo:

profile.add_client_cert(path_to_cert) 
profile.add_private_key(path_to_private_key) 

ho trovato un paio di file che potrebbe essere quello che mi serve per ottimizzare, ma non è sicuro come aggiungere certificato e le chiavi di questi file, cert8.db e key3.db. Ho trovato questi file nella directory del profilo di FireFox.

ho cercato il codice sorgente di selenio, ma non riusciva a trovare la risposta: https://github.com/SeleniumHQ/selenium/search?utf8=%E2%9C%93&q=cert

risposta

-2

Come posso vedere nel source code, è possibile creare un profilo di Firefox con un parametro (profile_directory) e ottenere firefox lanciata con il profilo dato. Penso che potresti anche impostare la preferenza profile.accept_untrusted_certs = True.

La directory del profilo fornita dovrebbe avere i certificati client preparati.

# Prepared Firefox profile directory 
profile = FirefoxProfile(profile_diretory) 

profile.set_preference("security.default_personal_cert", "Select Automatically") 
profile.set_preference("webdriver_accept_untrusted_certs", True) 
self.driver = WebDriver(firefox_profile=profile) 
+0

Sì @LittleQ, tuttavia la domanda rimane ancora, qual è la dichiarazione che rende il profilo utilizzare il mio certificato e la chiave. Abbiamo una dichiarazione come 'profile.add_client_cert (path_to_cert)'? Inoltre, 'profilo. accept_untrusted_certs = True' fa in modo che il client si fidi del certificato del server, non ha nulla a che fare con il certificato client. – gixxer

+0

@gixxer La directory del profilo dato dovrebbe avere i certificati client preparati (cioè 'cert8.db' e' key3.db' inclusi). – LittleQ

+0

Salve, quando "Seleziona automaticamente", verrà selezionato automaticamente uno (di molti se esistenti) certificato del cliente, lo capisco. La domanda è come utilizzare un certificato specifico, in altre parole, se cert8.db è il db dei certificati client, dovrebbe avere solo il mio certificato cliente specifico, come posso farlo? – gixxer

Problemi correlati