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

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

Ответы на вопрос(2)

поможет ли это, но вы можете изменить некоторые настройки в профиле. В 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);

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

Решение Вопроса

s

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

Сначала вы запускаете 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. Остановите тесты с помощью & quot; import pdb; pdb.set_trace () & Quot;

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

Импортируйте свой клиентский сертификат. Настройки & gt; Дополнительно & gt; Шифрование & gt; Посмотреть сертификаты. Импорт & quot; client.p12 & quot; из вашего клиентского сертификата.

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

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

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

Зайдите в меню Help & gt; Информация об устранении неполадок & gt; Основы применения & gt; Показать в поисковике. Это открывает временный каталог, содержащий файлы активного профиля Webdriver.

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

Прервите тесты. Перезапустите тесты. Запустите до паузы снова. В веб-драйвере Firefox посмотрите в настройках, что теперь он содержит сертификаты, которые вы утвердили при последнем запуске в настройках & gt; Дополнительно & gt; Шифрование & gt; Посмотреть сертификаты.

Больше информации

https://trac.macports.org/wiki/howto/MAMP

https://support.mozilla.org/en-US/questions/824255

http://wiki.apache.org/httpd/DebuggingSSLProblems#Finding_out_what_caused_a_handshake_to_fail

http://www.openssl.org/docs/apps/s_client.html

https://omni.tenderapp.com/kb/omni-certificate-authorities/importing-pkcs12-certificates-in-keychain-for-safarichrome-in-mac-os-x

http://support.mozilla.org/en-US/kb/Recovering%20important%20data%20from%20an%20old%20profile#w_security-certificate-settings """

 27 нояб. 2017 г., 12:49
Начиная с версии 58 Firefox это будут cert9.db и key4.db. В Visual Studio убедитесь, что они будут помечены как & quot; Копировать всегда & quot; в свойствах, чтобы убедиться, что эти файлы копируются при сборке.

Ваш ответ на вопрос