1. ホーム
  2. スクリプト・コラム
  3. パール
  4. アプリケーションのヒント

プロセス分析によるhttpsリクエストのチャールズベースクローリング

2022-01-03 01:29:54

Charles を使って https のリクエストを取得するには、ブラウザやアプリケーションなどの接続側と Charles 側で SSL Proxy の設定を完了させる必要があります。

SSL証明書

接続側では、まずチャールズの証明書をインストールする必要があり、チャールズのルート証明書を別のブラウザやアプリケーションで信頼する方法を以下に説明します。

Windows/インターネットエクスプローラ

操作方法

1. Charles->Help->SSL Proxying > Charles Root Certificate をインストールすると、CA Root Certificate を信頼しない旨の警告ウィンドウが表示されます。

2. この証明書は、"Trusted Root Certification Authorities" 証明書ストアにインポートする必要があるため、現在の自動証明書ストアの内容を上書きすることになります。

3. 証明書のインストールが完了した後、IEを再起動することで有効になります

Mozilla Firefox

できれば、firefoxがcharlesに接続されていることを確認する。

確認する方法

Firefoxでリンクにアクセスすると、CharlesのFirefoxでリクエスト情報を見ることができます。

FirefoxにChalresルート証明書をインストールすると、以下のように動作します。

1. firefoxでアクセス。 https://chls.pro/ssl

この時点で、firefoxは次のようなプロンプトをポップアップ表示します。

図1

2. セキュリティ例外の確認」をクリックすると、以下のウィンドウが表示されますので、「この認証局が特定するWebサイトを信頼する」にチェックを入れてください。

図2

3. OKをクリックすると、証明書がインストールされ、正常に信頼されます。

マックオーエス

操作方法

1. Charles->Help->SSL Proxying > Charles Root Certificate をインストールします。

2、キーチェーンを開きますので、キーチェーンの中の "Charles Proxy..." を見つけてダブルクリックで開きます。

3. 3. 信頼オプションで、この証明書を使用する場合、次のように、"Always trust"を選択します。

図3

4. セットアップに成功した後、ウィンドウを閉じると、変更を確認するために現在の管理者パスワードを入力するよう求められます

5. 5.サファリを再起動し、設定が成功したことを確認する

iOSデバイス

1. まず、携帯電話のwifiプロキシをCharlesに設定します。

設定: 無線LAN 現在接続中の無線LANは、手動でhttpプロキシを設定します。

サーバーは、Charlesを配置するコンピュータのipで、Charlesのデフォルトのポート番号は8888です

図4

2. 携帯電話でsafariを開き、https://chls.pro/ssl と入力すると、safariは証明書をインストールするように促し、インストールは以下のように完了します。

図5

3. iOS 10.3以上の場合、General>About phone>Certificate trust settingsでCharles certificateを探し、信頼スイッチをオンにする必要があります、詳細は公式サイトのドキュメントを参照してください(More information about this change in iOS 10)。

ps.

iOSの設定にある説明ファイルやデバイス管理へのパス。設定 - 一般 - 説明ファイル

iOSシミュレーター

iOS SimulatorにCharlesの証明書をインストールするには、まずシミュレータを終了します。

1. Charlesを開き、Charles->Help->SSL Proxying > Install Charles Root Certificate in iOS Simulatorsをクリックすると、すべてのiOSシミュレータにCharlesルート証明書がインストールされます。

2. iOS Simulatorを再度起動すると、SSL Proxyingが正常に利用できるようになります

tvOS

これはあまり使われないので、ここでは説明しませんが、理解したい方は公式ドキュメントを直接読んでください

アンドロイド

Androidでは、Charles SSL Proxyingで生成されたSSL証明書を信頼するためには、アプリ内で何らかの設定が必要です。

ネットワークセキュリティの設定に関する詳細は、アンドロイドの公式ドキュメントに記載されています。

このファイルを追加することで、システムのデフォルトを上書きし、アプリがインストールされたCAを信頼できるようにします。

証明書(例:チャールズ・ルート証明書)を使用します。この設定をデバッグ用パッケージにのみ適用し、本番用パッケージではデフォルトの信頼設定を使用するように安くすることができます

1. res/xml/network_security_config.xml ファイルをアプリに追加します。

<network-security-config> 
 <debug-overrides> 
  <trust-anchors> 
   <! -- Trust user added CAs while debuggable only -->
   <certificates src="user" /> 
  </trust-anchors> 
 </debug-overrides> 
</network-security-config>

2. マニフェストへの参照を追加します。

<?xml version="1.0" encoding="utf-8"? >
<manifest ... >
 <applicationandroid:networkSecurityConfig="@xml/network_security_config" ... >
    ...
  </application>
</manifest>

グーグルクローム

macOSの場合は、上記のmacOSの説明書を参照してください。以下は、Windowsのみに適用されます。

1. Charles->Help->SSL Proxying > Charles Root Certificate をバイナリファイル (.cer suffix) としてローカルに保存します。
2. Chromeの設定画面を開き、設定画面の下にある「詳細設定」ボタンをクリックして詳細オプションを開き、「証明書の管理」ボタンをクリックします。
3. 3. 「ルート証明書」タブを開き、手順1で保存した証明書をインポートするをクリックし、インポートが成功するまで画面の指示に従います。
4. 4. インポートに成功したら、ステップ1の証明書ファイルを削除することができます。

Javaアプリケーション

これはあまり使われないので、ここでは説明しませんが、理解したい方は直接ドキュメントを読んでください

パイソン

これはあまり使われないので、ここでは説明しませんが、理解したい方は直接ドキュメントを読んでください

クロール https リクエスト charles 設定

上記のCharlesルート証明書をインストールした後、Charlesでhttpsリクエストを適切にキャッチするためにSSLプロキシを設定する必要があります。

1. Charles->Proxy->SSL Proxying Settings...をクリックします。

図6

2. SSLプロキシ設定]ページで[追加]をクリックし、完全に一致するドメイン名とポート番号を追加します。*を追加し、「SSLプロキシを有効にする」にチェックを入れ、「OK」をクリックして保存します。

図7

3. 保存に成功した後、上記のブラウザまたはアプリケーションでhttpsリクエストを正常にクロールすることができます。

以上が今回の記事の内容ですが、学習のお役に立てれば幸いです。また、スクリプトハウスをより多く支持していただければ幸いです。