Автоматизация SSL-сертификатов на стороне клиента в Firefox и Selenium testing

можно ли протестировать SSL-сертификаты на стороне клиента с помощью Selenium и любого браузера? Например. Можете ли вы создать веб-драйвер и дать для него фиктивные сертификаты? Или использовать подготовленный профиль Firefox?

2 ответов


создание тестового профиля Selenium Firefox для SSL-сертификатов на стороне клиента

вам нужно подготовить профиль WebDriver Firefox Selenium, в который импортированы сертификаты клиентов.

сначала вы запускаете WebDriver со следующей конфигурацией в тестовом коде:

# 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

запустите модульные тесты и доведите их до точки Zope test server. Остановите тесты с помощью " import pdb ; pdb.set_trace()"

теперь у вас должен быть Экземпляр Firefox "WebDriver" Selenium на вашем экране.

импортируйте сертификат на стороне клиента. Настройки > Дополнительно > шифрование > Просмотр сертификатов. Импорт " клиент.p12 " от поставки сертификата на стороне клиента.

посетите URL-адрес, вызывающий диалоговое окно сертификата на стороне клиента в Firefox Webdriver::

    https://yourservevr/triggers-client-side-certificate-ssl-handshake

Это должно побудить вас принять сертификат клиента на тестовом сервере. Примите все вручную.

визит в меню Справка > сведения об устранении неполадок > основы приложения > показать в Finder. Откроется временный каталог с файлами активного профиля Webdriver.

копировать файлы профиля Firefox cert8.db и key3.db в тестовый пакет блок Начальная папка профиля Firefox WebDriver. Это папка, где селен выбирает семена для Веб-драйвер Firefox при запуске теста firefox-client-ssl-profile.

прервать тесты. Перезапустите тесты. Бегите до паузы снова. В WebDriver в это Браузер firefox см. в настройках, которые теперь содержат сертификаты, утвержденные при последнем запуске в меню Настройки > Дополнительно > шифрование > Просмотр сертификатов.

больше


Я не знаю, помогает ли это, но вы можете изменить некоторые настройки в профиле. На Java вы можете это сделать.

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);

Я не уверен, что это то, что вам нужно.