MagicPodのブラウザテストでは、テスト対象のサイトに接続するためにクライアント証明書が必要な場合、予め設定した内容に従ってクライアント証明書を自動的に選択することができます。
目次
サポート対象
実行環境
現在は、クラウド環境のChromeおよびローカルPC環境(Mac)のChromeにのみ、対応しています。
- 外部クラウドサービス(SauceLabs、BrowserStack)については対応予定はありません。
- Windows PCのChromeや他のブラウザなど、その他のローカルPC環境については現時点では対応しておりませんが、今後開発予定の機能として、以下に起票しております。
- クライアント証明書のサポート(Windows PCのChromeなど)
- 上記にご投票いただくことで、今後の機能開発における優先度の参考とさせていただくほか、機能実装時に通知を受け取ることもできます。投票の方法はこちらをご参照ください。
証明書ファイルの種類
PKCS #12タイプ(拡張子が.pfxまたは.p12のもの)のみ対応しています。
MagicPod 1.0.0以降では、古い暗号化アルゴリズム(RC2, RC4, RC5, DES, MD2, MD4, MDC2, RMD160, CAST5, Blowfish, IDEA, SEED)を使ったクライアント証明書はアップロードできなくなりました。新しく証明書をアップロードするには、上記よりも新しい暗号化アルゴリズムを使ってください。既にアップロード済みの証明書については、暗号化アルゴリズムに依らず継続して利用できます。
設定方法(クラウド)
テスト実行設定ダイアログを開き、環境の項目で「クラウド」を選択します。
「詳細設定」タブを開くとクライアント証明書の設定欄が表示されています。
クラウド環境の場合は、テストに使う証明書をMagicPodのサーバにアップロードする必要があります。
「証明書の管理」ボタンをクリックすると登録用のダイアログが表示されるので、ファイルを登録します。
ファイルを選択した後、証明書ファイルのパスワードを入力します。このパスワードは、クラウド上のテスト実行マシンに証明書をインストールするために必要になります。
登録が完了したら、閉じるボタンで一括実行の設定画面に戻ります。
ダイアログを閉じると、証明書を選択するプルダウンで今登録した証明書が選べるようになっているので選択します。また、「URLパターンを入力」と書かれている欄にこの証明書を使いたいサイトのURLの一部を入力します。
URLのパターンは部分一致になりますので、たとえば「https://test.example.com/login」のようなURLにアクセスする場合にも上図の指定でOKです。
これで設定は完了です。この状態でテストを実行すると、実行時に自動的にクライアント証明書が選択されます。
設定方法(ローカルPC)
ローカルPC(Mac)のテストでクライアント証明書を使用する場合には、予めPCに証明書をインストールしておいてください。
テスト実行設定ダイアログを開き、環境の項目で「ローカルPC」を選択します。
「詳細設定」タブを開くとクライアント証明書の設定欄が表示されています。
クラウドの場合と違い証明書をサーバに保存する必要はありませんが、代わりに証明書の「発行者名」を入力する必要があります。発行者名が分からない場合は、以下の手順で調べることができます。(2度目以降の使用等で既に発行者名が分かっている場合には次のステップは飛ばして大丈夫です)
「発行者名の取得」ボタンをクリックすると以下のようなダイアログが表示されるので、指示に従って証明書のファイルをアップロードしパスワードを入力します。ここで入力するパスワードはローカルPCに証明書をインストールしたときのパスワードと同じものです。証明書を解析して発行者名を取得するために必要となります。証明書自体は一度サーバにアップロードされて解析されますが、その後は不要なのでサーバに保存はされません。
解析が完了すると以下のようなメッセージが表示されます。
解析した発行者名がクリップボードに保存されているので、「発行者名を入力」という欄に貼り付けて入力します。また、「URLパターンを入力」と書かれている欄にこの証明書を使いたいサイトのURLの一部を入力します。
URLのパターンは部分一致になりますので、たとえば「https://test.example.com/login」のようなURLにアクセスする場合にも上図の指定でOKです。
これで設定は完了です。この状態でテストを実行すると、実行時に自動的にクライアント証明書が選択されます。
複数の証明書を登録する際にエラーが発生する場合
複数のクライアント証明書を登録した際に、適切な証明書が選択されない、またはクラウド端末の起動に失敗するといった不具合を確認しております。
上記のエラーが発生した場合は、すべてのクライアント証明書の「URLパターン」を一度空欄にしたうえで、再度テストを実行し、挙動が改善するかお試しください。
なお、上記の回避策でも問題が解消しない場合は、お手数ですがMagicPodサポートまでお問い合わせください。
ローカルPCにて、証明書選択ダイアログが表示される場合
上記の手順で証明書を設定した場合でも、お使いのMacによっては、下記のような証明書の選択ダイアログが表示されてしまい、テストが中断することがあります。
このような場合、対象の「どのサイトでどの証明書を使うか」という情報を、Chromeに事前に登録してください。この設定は、明示的に削除しない限り残り続けます。
1. Chromeの終了
メニューから「Google Chromeを終了」を選択してください。
2. 既存の設定の確認
ターミナルを開き、次のコマンドを実行してください。
defaults read com.google.Chrome AutoSelectCertificateForUrls
- 「does not exist」と表示された場合: 既存の設定はありません。
- すでに何らかの設定が表示された場合: お使いのMac環境には、別の証明書自動選択のルールがすでに登録されています。
3. ルールの登録
※このコマンドは既存の設定を上書き (全置換) します。手順2で見つかった既存のルールを残す場合は、「複数のルールを登録する場合」を参照してください。
下記のコマンドを実行してください。なお、発行者名は「発行者名の取得」ボタンで確認できます。
defaults write com.google.Chrome AutoSelectCertificateForUrls -array \
'"{\"pattern\":\"[*.]<URLパターン>[*.]\",\"filter\":{\"ISSUER\":{\"CN\":\"<発行者名>\"}}}"'
記入例
defaults write com.google.Chrome AutoSelectCertificateForUrls -array \
'"{\"pattern\":\"[*.]example.com[*.]\",\"filter\":{\"ISSUER\":{\"CN\":\"My Client Root CA\"}}}"'
複数の証明書を使う場合の記入例
すべてのルールをスペースで区切って並べます。既存の設定を上書きするため、複数登録する場合は1回のコマンドで指定してください。
defaults write com.google.Chrome AutoSelectCertificateForUrls -array \
'"{\"pattern\":\"[*.]example.com[*.]\",\"filter\":{\"ISSUER\":{\"CN\":\"CA-A\"}}}"' \
'"{\"pattern\":\"[*.]another.com[*.]\",\"filter\":{\"ISSUER\":{\"CN\":\"CA-B\"}}}"'
4. 登録結果の確認
Chromeを起動して chrome://policy を開いてください。AutoSelectCertificateForUrls の中に、登録したルールが表示されていれば設定は完了です。
補足
defaults delete com.google.Chrome AutoSelectCertificateForUrls