Python Selenium - 如何指定要在客户端 SSL 身份验证中使用的客户端证书

标签 python selenium authentication ssl

我根据 Python Selenium - What are possible keys in FireFox webdriver profile preferences 中的答案查看了所有 json 文件中所有可能的键,但我找不到用于指定要在我的 SSL 连接中使用的客户端证书的 key 。

我已经研究过这个问题,但找不到确切的答案。我发现我们需要根据How to import SSL certificates for Firefox with Selenium [in Python]?中的答案将证书添加到FireFox 配置文件中。 ,但我有点卡在这里,我无法弄清楚需要如何添加这个证书。

请注意,我不是在谈论信任服务器的证书。默认情况下,当您启动 SSL 连接时,分配给您的工作站的本地证书将用作客户端证书。在这里,我需要为我的 SSL 连接使用新的证书/私钥对。我需要这样做来测试 SSL 中的客户端身份验证。

因此,总而言之,我正在寻找如下所示的一些配置:

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

我发现了几个可能需要调整的文件,但不确定如何向这些文件添加证书和 key ,cert8.dbkey3.db。我在 FireFox 配置文件目录中找到了这些文件。

查了selenium的源码也没找到答案: https://github.com/SeleniumHQ/selenium/search?utf8=%E2%9C%93&q=cert

最佳答案

正如我在 source code 中看到的那样,您可以使用参数 (profile_directory) 创建一个 firefox 配置文件,并使用给定的配置文件启动 firefox。我认为您还可以设置首选项 profile.accept_untrusted_certs = True

给定的配置文件目录应该准备好客户端证书。

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

关于Python Selenium - 如何指定要在客户端 SSL 身份验证中使用的客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38337976/

相关文章:

Python:将列表中的一项变成两项

Python外部合并排序运行缓慢

perl - Selenium Webdriver 2 与 Firefox 26?

java - 无法使用 selenium webdriver 3.0.1 单击注销链接

ruby-on-rails - 单点登录服务如何工作?

python - 如何使用 PyGObject 为整个应用程序设置图标

java - 使用 Selenium 测试 Angularjs 应用程序

php - 使用 laravel 作为 API 注册新用户

java - 安全用户身份验证如何工作?

python - 拦截Python中的方法调用