如何使用安装了多个pfx证书的chromedriver登录网站

时间:2018-02-05 22:55:23

标签: java selenium phantomjs selenium-chromedriver pfx

我的系统上安装了多个pfx证书(个人信息交换)。当我必须使用chrome登录时,我只需选择要选择的证书(Windows安全性)弹出窗口,其中显示选择证书。如何在selenium chrome驱动程序中实现此功能(选择证书)功能。

我在搜索时遇到的两种方式是 1)为每个证书创建不同的配置文件(如果我在生产服务器上有1000个证书,则不可扩展。) 2)使用PhantomJS Web浏览器实现:

我正在做的事情:

DesiredCapabilities cap = DesiredCapabilities.chrome();
ImmutableMap<String, String> commandLineArguments = ImmutableMap.<String, String>builder()
        .put("web-security", "false")
        .put("ssl-protocol", "any")
        .put("ignore-ssl-errors", "true")
        .put("webdriver-loglevel", "DEBUG")
        .put("ssl-client-certificate-file", certificatePath)
        .put("ssl-client-key-passphrase", certificatePassword)
        .build();
String[] params = commandLineArguments.entrySet().stream()
        .map(e -> String.format("--%s=%s", e.getKey(), e.getValue()))
        .collect(Collectors.toList())
        .toArray(new String[0]);

cap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, params);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new PhantomJSDriver(cap);
driver.get(Url);

但它给了我空白页面。我怀疑,我正在使用“ssl-client-key-passphrase”来表示“密码”的个人信息交换文件。如何在chrome功能上指定密码。或者我如何编码chromedriver来选择登录安全网站的证书?

更新1: 我尝试添加如下的注册表设置并重新启动系统。 enter image description here

更新2: 我必须将pfx证书转换为pem文件格式才能使其正常工作。

0 个答案:

没有答案