在 chromedriver (Selenium) 中导入根 CA

Posted

技术标签:

【中文标题】在 chromedriver (Selenium) 中导入根 CA【英文标题】:Import root CA in chromedriver (Selenium) 【发布时间】:2016-04-18 12:08:30 【问题描述】:

我已经尝试并搜索了几乎所有内容,但在运行我的 Selenium 测试时仍然没有找到将根 CA 导入 chromedriver 的答案。

小背景信息:我正在使用 Selenium 和 chromedriver 运行回归测试。我的目标是让这些功能测试通过 Zed Attack Proxy。由于 web 应用程序使用 https,我需要在 chromedriver 中导入 Zed Attack 代理证书,因此它会信任 Zed Attack Proxy 来解密经过的请求。

仅供参考,此问题无法通过忽略证书错误来解决,因为这不会解密请求而只是忽略它。

感谢任何帮助!

【问题讨论】:

【参考方案1】:

我知道的唯一文档是https://github.com/SeleniumHQ/selenium/wiki/Untrusted-SSL-Certificates,但它只涵盖了 firefox:/ 我相信你可以用 Selenium 指定现有的 Firefox 配置文件,所以也许你可以用 Chromium 做同样的事情?如果是这样,您可以“手动”将证书导入新的配置文件,然后将其用于测试吗?

更新,我也发现了这个:https://unix.stackexchange.com/questions/122753/chrome-certificate :)

【讨论】:

谢谢 Simon,我会尝试在 Firefox 配置文件中手动导入证书。如果成功了,我会告诉你的。 我认为我非常接近解决方案。我已将 zap 根 CA 添加到我的 Ubuntu 上的默认 firefox 配置文件的数据库中。我还在此默认配置文件的 prefs.js 文件中设置了 ZAP 的代理设置。当我启动 Selenium 时,我正在加载此配置文件。这很好用,配置文件已加载,HTTP 请求通过我的 ZAP 实例传递。但是,我仍然看不到任何 HTTPS 请求。 :(。我可能遗漏了什么吗?仅供参考,我现在使用 Firefox 而不是 Chrome 进行测试。 仅供参考,我可以确认当我启动 Selenium 时加载了正确的默认配置文件,因为加载了正确的代理设置。但不知何故,它不使用 ZAP 的证书来解密 HTTPS 请求。 您是否将 ZAP 证书设置为证书颁发机构?如果不是,您需要这样做,仅在证书数据库中是不够的。 是的,我相信我做到了,我使用了以下命令:sudo certutil -A -t "CT,C,C" -n "OWASP Zed Attack Proxy Root CA - OWASP Root CA" -i owasp_zap_root_ca.cer -d .mozilla/firefox/pc6r9ki5.default

以上是关于在 chromedriver (Selenium) 中导入根 CA的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 上使用 selenium 和 chromedriver

selenium 怎么驱动chromedriver

selenium使用ChromeDriver

selenium与chromedriver的操作

C# + Selenium + ChromeDriver 爬取网页

Selenium 错误:“chromedriver”可执行文件需要在 PATH [重复]