での SSL 証明書の処理方法 Selenium
⚡ スマートサマリー
SSL証明書エラーは Selenium ブラウザが信頼できない証明書や期限切れの証明書を拒否した瞬間をテストするため、すべての WebDriver スクリプトには、証明書を受け入れて自動化を続行できるようにするブラウザ固有の機能が必要です。
SSL証明書 Selenium
SSL (Secure Sockets Layer) は、サーバーとブラウザであるクライアントとの間に安全な接続を確立するための標準セキュリティ プロトコルです。
SSL証明書は、強力な暗号化とデジタル署名によって、サーバーとクライアントアプリケーション間でやり取りされるデータを保護します。サイト所有者は、SSL証明書またはコード署名証明書のいずれかをインストールします。
SSL証明書のメリット
SSL 証明書を使用すると、次のような多くの利点があります。
- ビジネスの急速な成長を促進するために、ユーザーと顧客の信頼を高めることができます。
- これらの証明書は、オンライン取引やクレジット カード/デビットカード データなどの顧客の機密情報を保護するのに役立ちます。
- 署名証明書は、ダウンロード数が最大になり、ユーザーから良いレビューを得る傾向があります。
SSL で保護された Web サイトは次から始まります https:// 接続が安全に確立されている場合は、鍵のアイコンまたは緑色のアドレス バーが表示されます。
たとえば、ネットバンキングで取引をしたい場合や、商品を購入したい場合、 モバイル Flipkart などの電子商取引サイトを通じて電話をかけるか、 Amazon.
Web ブラウザとサーバーの間で何が起こるか
- ブラウザは、SSL で保護された Web サイトに接続しようとします。 ブラウザはウェブサーバーに自身を識別するよう要求します
- サーバーはブラウザにSSL証明書のコピーを送信します
- ブラウザは SSL 証明書が本物かどうかを検証します。 そうであれば、サーバーにメッセージを送信します
- サーバーはデジタル署名された確認応答を送り返し、SSL 暗号化セッションを開始します。
- 暗号化されたデータはサーバーとブラウザ間で共有されます
カード番号とログイン認証情報はセッションを通じてやり取りされるため、通信はエンドツーエンドで暗号化され、傍受されてはならない。
例えば、下部に表示される南京錠のアイコンとアドレスバーは、証明書が承認されたことを示しています。
- タイプ https://netbanking.hdfcbank.com/netbanking/ .
- Enterキーを押します。
- 以下のように、ブラウザに緑色のアドレス バーが表示されます。
SSL 証明書が安全な接続を確立する方法
下の図 trac握手について説明し、続く番号付きの手順でそれぞれのやり取りを説明します。
- ブラウザ HTTPS リクエストをサーバーに送信します。
- ここで、サーバーは、ブラウザーが信頼されていることを証明するために、ブラウザーに何らかの ID を提供する必要があります。 これは、SSL 証明書のコピーをブラウザに送信することで実行できます。
- 各ブラウザには、信頼できる CA の独自のリストがあります。 ブラウザは、信頼できる CA のリストと照合して証明書のルートを確認し、証明書の有効期限が切れていないこと、取り消されていないこと、および接続先の Web サイトに対して共通名が有効であることを確認します。
- ブラウザが証明書を信頼すると、サーバーとブラウザの間に暗号化されたセッションが作成されます。
- サーバーとブラウザは暗号化されたメッセージを送信できます
SSL証明書のタイプ
ブラウザとサーバーは SSL 証明書メカニズムを使用して、安全な接続を確立できます。 この接続には、XNUMX 種類の証明書の検証が含まれます。
- Root(根)
- 中級
- サーバー証明書
SSL証明書取得の流れ
SSL 証明書を取得するプロセスには以下の手順が含まれます:-
- まず、CSR (証明書署名要求の作成) リクエストを作成する必要があります。
- CSR リクエストにより CSR データ ファイルが作成され、CA (認証局) と呼ばれる SSL 証明書発行者に送信されます。
- CA は CSR データ ファイルを使用してサーバーの SSL 証明書を作成します。
- SSL 証明書を受け取ったら、それをサーバーにインストールする必要があります。
- SSL 証明書と CA のルート証明書を結び付ける中間証明書もインストールする必要があります。
下の画像は XNUMX つの証明書すべてを表しています。 ルート証明書、中間証明書、およびサーバー証明書。
SSL証明書の検証方法
SSL は、Web サーバー コンピュータと Web サーバー ブラウザに存在するプログラムと暗号化/復号化ルーチンの組み合わせによって機能します。
SSL証明書には基本的に以下の情報が含まれます。
- Web サイト所有者の ID である件名。
- 有効性情報 - 公開キーと秘密キー。
秘密鍵と公開鍵は、それぞれ固有の関係を持つ2つの暗号鍵(数値)です。公開鍵で暗号化されたデータは、秘密鍵でのみ復号化できます。ブラウザでは、証明書を検査する際に、以下のようにこれらのフィールドが表示されます。
証明書によりサーバーとクライアント間で安全な接続が確立されない場合、次の SSL 証明書エラーが発生します。
SSL証明書エラーの種類
HTTPSリクエストを入力した際に、ブラウザから「この接続は信頼されていません」または「サイトのセキュリティ証明書は信頼されていません」という応答が返ってきたとします。ブラウザは提示された証明書を使用して安全な接続を確立できなかったため、処理を停止し、ユーザーに適切な対応を求めます。
さまざまなブラウザで証明書が原因で発生する可能性のあるエラーの種類は、次のようなものです。
- 火災Fox – この接続は信頼できません
- Google Chrome – このサイトのセキュリティは信頼できません
- インターネットエクスプローラー(IE) – この Web サイトによって提示されたこのセキュリティ証明書は、信頼された認証局 (CA) によって信頼されていませんでした。
以下のスクリーンショットは、信頼できない証明書が生成する中間表示を示しています。
を使用して SSL 証明書エラーを処理する方法 Selenium ウェブドライバー
と仮定します テストスクリプト 上記の「信頼されていない接続」ページにアクセスします。スクリプトを調整して、SSL 例外を単独で処理するようにする必要があります。 オートメーション.
変更は使用中のブラウザインスタンスに依存し、ここで希望する機能が登場します。希望する機能は、ドライバインスタンスを構成します。 Selenium WebDriver(ChromeDriverを含む)、 Firefoxドライバーとインターネットエクスプローラー。
以下の手順は Selenium 各ブラウザの「信頼できない接続」状態を解消するためのスクリプト。
⚠️ Selenium 4年の注記: DesiredCapabilities クラスは削除されました Selenium 4. ブラウザのオプションクラスは、単一のW3C機能を通じて同じ設定を伝達するようになりました。 安全でない証明書を受け入れる.
| ブラウザ | Selenium 4クラス | コール |
|---|---|---|
| Chrome | Chromeオプション | setAcceptInsecureCerts(true) |
| Firefox | Firefoxオプション | setAcceptInsecureCerts(true) |
| エッジ(Edge) | エッジオプション | setAcceptInsecureCerts(true) |
| Safari | Javascript執行者 | 一時的なバイパススクリプト |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
での SSL 証明書エラー処理 Firefox
でのSSL証明書エラーの処理用 Firefox、必要な機能を使用する必要があります Selenium Webdriver をインストールし、次の手順に従います。
ステップ1) まず、新しい Firefox プロフィール いう "私のプロフィール"
ステップ2) 次に、以下のようにスクリプトで myProfile にアクセスし、 Firefoxプロファイルオブジェクト。
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
ステップ3) 次に、Fire の「setAcceptUntrustedCertificates」と「setAssumeUntrustedCertificateIssuer」プロパティを設定する必要があります。 Fox プロフィール。
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
ステップ4) 火を使ってFox ファイアーのプロフィールFox ドライバーオブジェクト。
WebDriver driver = new FirefoxDriver (ffProfile)
注意: setAcceptUntrustedCertificates" と "setAssumeUntrustedCertificateIssuer「Webブラウザにおける証明書エラーを処理する機能」です。
⚠️ バージョンに関する注記: 上記のプロファイルベースのコードは、 Selenium 2本、そして Selenium 3。 に Selenium 4 プロフィールは以下から添付されます Firefoxオプション、そして Firefox デフォルトで安全性の低い証明書を受け入れる。
Chrome での SSL 証明書エラー処理
ChromeでSSLエラーを処理するために、以下のDesiredCapabilitiesオブジェクトはすべてのSSL証明書を受け入れるため、実行中にユーザーに証明書の警告が表示されません。
以下のように DesiredCapabilities クラスのインスタンスを作成する必要があります:-
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ バージョンに関する注記: CapabilityType.ACCEPT_SSL_CERTS は古い JSON Wire Protocol に属します。実行時に、以前に示した ChromeOptions スニペットに置き換えてください。 Selenium 4.
IE での SSL 証明書エラー処理
Chrome ブラウザでの SSL 証明書の処理とは異なり、 FirefoxIEでは、次のように処理する必要があるかもしれません。 ジャバスクリプト.
IEでSSL証明書を処理するには、2つの方法があります。
方法1) インタースティシャル広告に表示される「このウェブサイトに進む(非推奨)」というリンクをクリックしてください。このリンクには「overridelink」というIDが付与されており、下のスクリーンショットに示すように、F12キーで開いたHTMLペインで確認できます。
driver.navigate() メソッドを使用してリンクをクリックします。 Javaスクリプトは以下のとおりです。
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
方法2) 2つ目の方法は、ChromeのSSL処理コードと非常によく似ています。
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
上記のコードは、IE での SSL 証明書エラーの処理に役立ちます。
⚠️ バージョンに関する注記: Internet Explorer 11 は 2022 年 6 月にサポートが終了しました。同じシナリオを次のブラウザで実行してください。 Microsoft Edge EdgeOptionsを使用するか、レガシーアプリケーションがまだ必要とする場合は、EdgeをIEモードで実行してください。





