Cucumber 使用firefox驱动程序时如何向Web服务器传递ssl证书

Cucumber 使用firefox驱动程序时如何向Web服务器传递ssl证书,cucumber,capybara,ssl-certificate,selenium-webdriver,Cucumber,Capybara,Ssl Certificate,Selenium Webdriver,我正在创建一个测试用例,用Capybara和SeleniumWebDriver测试一个安全的网站 我想测试的webapp是安全的https类型,所以我需要将ssl证书(客户端证书)信息传递给webserver以接受我的连接。 我知道当我通过Rest客户端请求时,我可以将.pem证书传递到https连接 cert = File.read('pem_file_location') http.use_ssl = true http.cert = OpenSSL::X509::C

我正在创建一个测试用例,用Capybara和SeleniumWebDriver测试一个安全的网站

我想测试的webapp是安全的https类型,所以我需要将ssl证书(客户端证书)信息传递给webserver以接受我的连接。 我知道当我通过Rest客户端请求时,我可以将.pem证书传递到https连接

    cert = File.read('pem_file_location')
    http.use_ssl = true
    http.cert = OpenSSL::X509::Certificate.new(cert)
    http.key = OpenSSL::PKey::RSA.new(cert)
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
如果我想通过firefox驱动程序建立https连接,我正在寻找类似的方法

我得到了一个解决方案,其中我创建了自定义firfox配置文件,并将证书合并到该配置文件中,并在运行测试时使用它。但是我不想要这个解决方案,因为我公司的CI服务器上不允许配置文件


如果您正在运行Selenium Grid(),您可以为Firefox的节点配置提供“acceptSslCerts=true”选项,理论上,只要证书来自浏览器附带的一个受信任的cacerts权限,它就可以接受证书


现在,如果您创建了自己的自定义CA授权,这将不起作用,除非您首先手动将CA导入浏览器cacerts商店。

djangofan,感谢您的回复。不,我没有使用网格。网格不需要Out应用程序功能,这非常简单。是的,我想使用自定义CA证书。但问题是我们无法访问CI来自定义firefox配置文件。我正在寻找一些东西,我可以动态创建配置文件并将证书详细信息传递到其中。您可以签入预建firefox配置文件的.zip存档(预导入证书CA)当您的CI签出代码时,它将拥有该代码。这是你的选择吗?再次感谢,这是我在我的开发机器上尝试过的一个选项,它起作用了。但根据公司的政策,证书不允许存储在修订控制中。我可以在CI服务器上的特定位置拥有我的证书,我想通过一些配置命令和capybara将此信息传递给Firefox驱动程序。这将是一个简洁的解决方案。类似于net/http gem我们用于REST请求。此外,根据compnay规范,我自己在CI服务器上的自定义配置文件不是一个选项。似乎您可以通过从另一个站点下载CA来动态构建配置文件,而无需将其存储在服务器上。然后使用certutil导入它?