当前位置: 首页 > 面试题库 >

在Firefox和Selenium测试中自动执行SSL客户端证书

阴永逸
2023-03-14
问题内容

是否可以使用Selenium和任何浏览器测试客户端SSL证书?例如,您可以创建一个Web驱动程序并为其提供虚拟证书吗?还是使用准备好的Firefox配置文件?


问题答案:

为SSL客户端证书创建Selenium Firefox测试配置文件

您需要准备Selenium的WebDriver Firefox配置文件,其中已导入了客户端证书。

首先,在测试代码中使用以下配置启动WebDriver:

# Pre-seeded Firefox profile directory
profile_directory = os.path.join(os.path.dirname(__file__), "..", "..", "certs", "firefox-client-ssl-profile")
self.assertTrue(os.path.exists(profile_directory))

profile = FirefoxProfile(profile_directory)

# Make sure the client side certificate selection does not interrupt the test
# XXX: What happens in other language versions?
profile.set_preference("security.default_personal_cert", "Select Automatically")
self.driver = WebDriver(firefox_profile=profile)

self.selenium_helper = SeleniumHelper(self, self.driver)
self.selenium_helper.driver = self.driver

启动单元测试,并将其驱动到Zope测试服务器已启动的位置。使用“ import pdb; pdb.set_trace()”停止测试

现在,您的屏幕上应该有一个Selenium的“ WebDriver” Firefox实例。

导入您的客户端证书。首选项>高级>加密>查看证书。从客户端证书供应中导入“ client.p12”。

在Webdriver的Firefox中访问触发客户端证书对话框的URL ::

    https://yourservevr/triggers-client-side-certificate-ssl-handshake

这应该提示您接受针对测试服务器的客户端证书。手动接受所有内容。

访问菜单帮助>故障排除信息>应用程序基础>在Finder中显示。这将打开临时目录,其中包含Webdriver的活动配置文件。

将Firefox配置文件复制cert8.db并复制key3.db到您的单元测试包WebDriver的Firefox配置文件的种子文件夹中。测试开始时,Selenium就是在该文件夹中为Firefox
Web驱动程序选择种子firefox-client-ssl-profile

中断测试。重新启动测试。运行直到再次暂停。在Webdriver的Firefox中,现在可以在设置中看到它包含您上次运行时批准的证书,这些证书是在“首选项”>“高级”>“加密”>“查看证书”中。

更多信息

  • https://trac.macports.org/wiki/howto/MAMP

  • https://support.mozilla.org/zh-CN/questions/824255

  • http://wiki.apache.org/httpd/DebuggingSSLProblems#Finding_out_what_caused_a_handshake_to_fail

  • http://www.openssl.org/docs/apps/s_client.html

  • https://omni.tenderapp.com/kb/omni-certificate-authorities/importing-pkcs12-certificates-in-keychain-for-safarichrome-in-mac-os-x

  • http://support.mozilla.org/zh-CN/kb/Recovering%20important%20data%20from%20an%20old%20profile#w_security-certificate-settings “”“



 类似资料:
  • 好的,我正在尝试使用客户机证书来对python客户机进行Nginx服务器的身份验证。以下是我目前所尝试的: 现在我从服务器上得到了400个SSL证书错误。我做错了什么?

  • 我只是在我的服务器上设置SSL证书。我很确定他们是对的。当转到在浏览器中,页面正确加载,地址栏中显示绿色锁。 在Firefox上发帖子 如果我在Java客户机上发布同样的帖子,我会得到以下错误: 在我的服务器上,我已经把CA_ROOT证书放在JAVA.../jre/lib/Security/cacert密钥库中。 这是我在Java客户端发布的代码。 请注意:这不是一个自己签署的证书。它是由一个认证

  • 问题内容: 我们的系统与多个Web服务提供商进行通信。它们都是从单个Java客户端应用程序调用的。到目前为止,所有的Web服务都已通过SSL进行,但是没有一个使用客户端证书。好吧,一个新的合作伙伴正在改变这一现状。 使应用程序使用证书进行调用很容易;设置和将做到这一点。但是,现在的问题是如何制作它,使其仅在调用该特定Web服务时使用证书。我想更一般地说,我们希望能够选择要使用的客户端证书(如果有)

  • 我一直在按照本教程学习如何使用Selenium,并且刚刚成功运行了以下代码: 我如何确保无头Firefox不再运行?我运行了这段代码两次,现在两首歌曲正在相互播放。感谢任何帮助,我只是想确保没有任何东西在后台运行!

  • 客户端测试更多关心客户端方面的代码执行情况,通常是web浏览器或者浏览器插件。区别于服务器端,代码在客户端执行并直接返回随后的结果。 下列文章描述了如何进行客户端的web应用测试: 基于DOM跨站脚本测试 (OTG-CLIENT-001) JavaScript脚本执行测试 (OTG-CLIENT-002) HTML注入测试 (OTG-CLIENT-003) 客户端URL重定向测试 (OTG-CLI

  • 问题内容: 我正在尝试使用Selenium-Python Client Library自动执行到Web应用程序的登录过程。最终目标是学习Selenium的Python客户端库。因此,我真的很感谢Selenium- Python的那些人的答案。 我目前有这样的代码: 这很好,但是所有操作都在前端进行。我的意思是,它实际上是打开Firefox,键入值,单击Submit等,这与预期的一样。 我只是想知道