2

我正在创建一个测试用例来使用 Capybara 和 selenium webdriver 测试一个安全网站。

我要测试的 webapp 是安全的 https 类型,所以我需要将我的 ssl 证书(客户端证书)信息传递给 web 服务器以接受我的连接。我知道当我通过 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 服务器上不允许使用配置文件。

任何帮助,将不胜感激

4

1 回答 1

1

好吧,如果您正在运行 Selenium Grid(如此处所述),您可以为 Firefox 的节点配置提供“acceptSslCerts=true”选项,理论上,它可能会接受证书,只要证书来自其中一个浏览器附带的受信任的证书颁发机构。

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

于 2013-06-24T16:49:04.977 回答