我根据Python Selenium - What are possible keys in FireFox webdriver profile preferences中的答案查看了所有json文件中的所有可能键,但是我找不到用于指定要在SSL连接中使用的客户端证书的密钥。
我已对此进行了研究,但我无法找到确切的答案。我发现我们需要根据How to import SSL certificates for Firefox with Selenium [in Python]?中的答案将证书添加到FireFox配置文件中,但我有点困在这里,我无法弄清楚这个证书究竟需要添加的程度。< / p>
请注意,我不是在谈论信任服务器的证书。默认情况下,启动SSL连接时,将分配给工作站的本地证书用作客户端证书。在这里,我需要为我的SSL连接使用新的证书/私钥对。我需要这样做来测试SSL中的客户端身份验证。
因此,总而言之,我正在寻找一些看起来像这样的配置:
profile.add_client_cert(path_to_cert)
profile.add_private_key(path_to_private_key)
我发现了一些可能需要调整的文件,但不确定如何将证书和密钥添加到这些文件cert8.db
和key3.db
。我在FireFox配置文件目录中找到了这些文件。
我搜索了硒的源代码,但无法找到答案: https://github.com/SeleniumHQ/selenium/search?utf8=%E2%9C%93&q=cert
答案 0 :(得分:0)
要piggy带以前的回答,这就是我所做的。
在我的python代码中:我有:
import os
profile_directory = os.path.join(os.path.abspath(os.sep),"home","rumpelstiltskin","my_cert_db")
self.driver = WebDriver(firefox_profile=profile)
然后使用以下终端命令创建cert8.db
文件:
cd /home/rumpelstiltskin
mkdir my_cert_db
certutil -N -d sql:my_cert_db/
pk12util -n my-cert-name -d sql:my_cert_db/ -i /my/path/to/cert.p12
答案 1 :(得分:-2)
正如我在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)