如何停止chrome选择证书窗口

时间:2016-11-17 11:31:00

标签: google-chrome ssl selenium-webdriver automation autoit

我正在研究selenium项目,我需要测试的系统是使用SSL证书。每次尝试登录时我们都会得到这个"选择证书"窗口。我们无法用webdriver处理。

Chrome select a certificate window

我尝试使用AutoItx单击ok按钮,如下所示。但Send("{ENTER}")并不是继续使用的最佳选择。

if (AutoItX.WinWaitActive("data:, - Google Chrome", "", 10) == 0)
{
   AutoItX.WinActivate("data:, - Google Chrome");
   AutoItX.Send("{ENTER}");
}

有没有办法使用并使用autoItx单击“确定”按钮。或者我们可以通过使用功能来定义chromedriver时加载此证书。

感谢任何解决此问题的想法。

2 个答案:

答案 0 :(得分:4)

这有助于Chrome版本59.0.3071.86(64位),Win 7 Enterprise:

创建注册表项:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome \ AutoSelectCertificateForUrls

这里创建名为1

的新String值(REG_SZ)

作为价值数据输入:
{ “图案”: “[*。]”, “过滤器”:{}}

This is how the registry then looks like.

有关此密钥的更多信息,我发现:

  

该值必须是字符串化JSON字典的数组。每个字典必须具有{“pattern”形式:“$ URL_PATTERN”,“filter”:$ FILTER},其中$ URL_PATTERN是内容设置模式。 $ FILTER限制浏览器将自动选择的客户端证书。独立于过滤器,仅选择与服务器的证书请求匹配的证书。如果$ FILTER的格式为{“ISSUER”:{“CN”:“$ ISSUER_CN”}},则仅选择由具有CommonName $ ISSUER_CN的证书颁发的客户端证书。如果$ FILTER是空字典{},则不会另外限制客户端证书的选择。

on Automatically select client certificates for these sites

答案 1 :(得分:0)

如果您有多个证书,但您要选择的证书不是第一个,那么您将需要应用过滤器。

http://www.chromium.org/administrators/policy-list-3#AutoSelectCertificateForUrls对过滤器值进行了深入的描述,但是您可能对大多数过滤器都不感兴趣,可以使用:

{"pattern":"[*.]","filter":{"ISSUER":{"CN":"[Issued By]"}}}

用您的客户证书的颁发者替换 [颁发者] 。我一生都无法设法使URL模式使用比[*。]更具体的东西,它可以匹配任何URL。