CentOS7のGoogle-Chromeのヘッドレスモードでクライアント証明書を使用したい
UIテスト自動化のため、CentOS7のChromeヘッドレスモードで、クライアント証明書で認証しているウェブサイトにアクセスしたいのですが、クライアント証明書の提示に失敗しているようなのですが、原因不明で困っています。
何かご存知の方、お教え頂けませんでしょうか?
CentOS7はGUIはインストールしていませんので、CLIしか使用できません。
クライアント証明書のインストール方法が間違っているのか、
chromeヘッドレスモードの指定が間違っているか、
そもそも出来ないのか。。。
発生している問題・エラーメッセージ
画面キャプチャを取得しても、真っ白な画面の画像が表示されます。
該当のソースコード
PHP
1<?php 2require_once(__DIR__ . "/../vendor/autoload.php"); 3 4use Facebook\WebDriver; 5use Facebook\WebDriver\WebDriverExpectedCondition; 6use Facebook\WebDriver\WebDriverBy; 7use Facebook\WebDriver\Chrome\ChromeOptions; 8use Facebook\WebDriver\Chrome\ChromeDriver; 9use Facebook\WebDriver\Remote\DesiredCapabilities; 10 11$driverPath = realpath("/usr/local/bin/chromedriver"); 12putenv("webdriver.chrome.driver=" . $driverPath); 13 14// Chromeを起動するときのオプション指定 15$options = new ChromeOptions(); 16 17// ヘッドレスで起動するように指定 18$options->addArguments(['--headless']); 19$options->addArguments(['--disable-gpu']); 20$options->addArguments(['--no-sandbox']); 21$options->addArguments(['--auto-ssl-client-auth']); 22$options->addArguments(['--window-size=1280,1080']); 23$options->addArguments(['--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"']); 24 25$caps = DesiredCapabilities::chrome(); 26$caps->setCapability(ChromeOptions::CAPABILITY, $options); 27$caps->setCapability('acceptSslCerts', true); 28 29$driver = ChromeDriver::start($caps); 30 31$driver->get('https://www.example.jp/'); 32$driver->wait(30); 33 34// スクリーンショットを保存 35$driver->takeScreenshot('screenshot.png'); 36 37$driver->quit();
試したこと
クライアント証明書をインストールしてみました。
pk12util -i client.p12 -d sql:$HOME/.pki/nssdb -n "www.example.jp"
補足情報(FW/ツールのバージョンなど)
chromedriver、composerでfacebook/webdriverをインストールしています。
あなたの回答
tips
プレビュー