Proxyman で社内 VPN 接続中の iOS アプリの HTTPS 通信をキャプチャ

Proxyman で社内 VPN 接続中の iOS アプリの HTTPS 通信をキャプチャ のカバー画像

iOS 開発者の方であれば、社内サービスや開発用・ステージング用サーバーにアクセスするために、会社の VPN 接続が必要になっている可能性が高いでしょう。

ただ、社内 VPN は、明示的に許可されていない HTTP/HTTPS 通信をブロックすることで知られています。

このチュートリアルでは、社内 VPN 接続中の iOS アプリから HTTPS 通信をキャプチャしてインターセプトする方法を紹介します。

このチュートリアルで実現することは次のとおりです:

  • Proxyman macOS / Windows / Linux のダウンロードとセットアップ
  • iOS アプリへの Atlantis のセットアップ
  • VPN 接続中に、Proxyman で iOS アプリの HTTPS 通信をキャプチャして確認

Proxyman のような MITM プロキシアプリで動作する VPN

幸いなことに、HTTP/HTTPS 通信を明示的に許可する設定を持つ VPN もあります。一覧は次のとおりです:

  • TunnelBlick: そのまま動作します。設定は不要です。
  • FortiClient: HTTP プロキシを Proxyman に設定すると動作します。
  • AnyConnect: 設定に少し手間がかかります。
  • Pulse Secure と GlobalProtect VPN: 設定が複雑です。
  • Viscosity: 一部の設定が必要です。
  • Cisco VPN: プロキシの設定が必要です。
  • NordVPN: プロキシの設定が必要です。
  • Zscaler: 動作させるための回避策があります。

各 VPN の詳しい手順は VPN のドキュメント をご覧ください

1. Proxyman macOS のダウンロードとセットアップ

  1. Proxyman の Web サイト から Proxyman macOS をダウンロードします。Atlantis は Proxyman macOS でのみ動作します。
  2. Proxyman をインストールします
  3. Proxyman を開き、Certificate メニュー → Install Certificate for this Mac... を選択します
  4. 画面の指示に従って証明書をインストールします
  5. Proxyman 証明書に緑のチェックマークが表示されていることを確認します
Proxyman の証明書をインストール
Proxyman の証明書をインストール

2. なぜ Atlantis が必要なのか?

Atlantis はプロキシを使用しないため、どの VPN とも動作します。

Atlantis を使うメリット:

  • iOS デバイスにプロキシを設定したり、証明書をインストールしたりする必要はありません
  • ✅ 社内 VPN を含め、どの VPN とも動作します
  • iOS アプリの HTTP/HTTPS 通信と WebSocket 通信をキャプチャできます
  • iOS シミュレータと実機の両方で動作します

3. iOS アプリに Atlantis をセットアップ

始める前に、Atlantis の README を読み、手順に従ってください。

iOS アプリに Atlantis を組み込む手順は次のとおりです:

  1. Swift Package Manager で https://github.com/ProxymanApp/atlantis を指定して、Atlantis をプロジェクトに追加します
  2. Info.plist ファイルに必要な権限を追加します:
<key>NSLocalNetworkUsageDescription</key>
<string>Atlantis would use Bonjour Service to discover Proxyman app from your local network. Atlantis uses it to transfer the data from your iOS app to Proxyman macOS for debugging purposes.</string>
<key>NSBonjourServices</key>
<array>
    <string>_Proxyman._tcp</string>
</array>

サンプルの Info.plist ファイルは次のとおりです:Info.plist

  1. Atlantis を起動します:
  • SwiftUI の場合:
import SwiftUI

#if DEBUG
// 1. Import Atlantis
import Atlantis
#endif

@main
struct AtlantisSwiftUIAppApp: App {

    init() {
        // 2. Connect to your Macbook
        #if DEBUG
        Atlantis.start()
        
        // 3. (Optional)
        // If you have many Macbooks on the same WiFi Network, you can specify your Macbook's name
        // Find your Macbook's name by opening Proxyman App -> Certificate Menu -> Install Certificate for iOS -> With Atlantis ->
        // Click on "How to start Atlantis" -> Select "SwiftUI" Tab
        // Atlantis.start("Your's Macbook Pro")
        #endif
    }
}
  • UIKit の場合:
#if DEBUG
import Atlantis
#endif

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    #if DEBUG
        // 2. Connect to your Macbook
        Atlantis.start()

        // 3. (Optional)
        // If you have many Macbooks on the same WiFi Network, you can specify your Macbook's name
        // Find your Macbook's name by opening Proxyman App -> Certificate Menu -> Install Certificate for iOS -> With Atlantis ->
        // Click on "How to start Atlantis" -> Select "SwiftUI" Tab
        // Atlantis.start("Your's Macbook Pro")
    #endif

    return true
}

4. 社内 VPN に接続した状態で iOS アプリを起動する

  1. Xcode で iOS シミュレータまたは実機を選択して、アプリを起動します。iOS デバイスや Mac では、任意の VPN を使用できます。
  2. Proxyman macOS アプリを開きます。すべての HTTP および HTTPS 通信、WebSocket 通信が自動的にキャプチャされ、Proxyman に表示されます。
  • 例えば、https://httpbin.org/get へのリクエストがあるとします
社内 VPN 接続中の iOS アプリから HTTPS 通信をキャプチャ
社内 VPN 接続中の iOS アプリから HTTPS 通信をキャプチャ
  1. ✅ 完了です!

5. WebSocket 通信をキャプチャするには?

幸いなことに、Atlantis は WebSocket 通信にも対応しており、どの VPN とでもそのまま動作します。

アプリが URLSessionWebSocketTask を使って WebSocket リクエストを送信している場合、Proxyman でキャプチャされます。

社内 VPN 接続中の iOS アプリから WebSocket 通信をキャプチャ
社内 VPN 接続中の iOS アプリから WebSocket 通信をキャプチャ

WebSocket のサンプルアプリはこちらです

Atlantis は URLSession、または内部で URLSession を使用するライブラリでのみ動作します。例えば、Alamofire でも動作します。

URLSession ではない独自のネットワークスタックを使用している場合は、動作しません。

テスト前の確認事項

Atlantis はデバッグビルドでのみ使用し、アプリのリリース版からは削除してください。iPhone と Mac は同じローカルネットワークに接続しておく必要があります。また、キャプチャしたデータを Proxyman に送信するには、アプリにローカルネットワークへのアクセス許可が必要になる場合があります。リクエストにはサインイン情報や社内の非公開データが含まれることがあるため、この設定は、テストすることが許可されているアプリとアカウントでのみ使用してください。

次のステップ

関連記事


Proxyman は、開発者が iOS デバイス、iOS シミュレータ、Android デバイスの HTTPS 通信をキャプチャできる、高性能な macOS / Windows / Linux アプリです。

ダウンロードはこちら:https://proxyman.com

Noah Tran
Noah Tran

2026年7月16日 に改訂。 Atlantis のデバッグビルド、ローカルネットワーク、プライバシーに関する確認事項を追加しました。

VPN 接続中の iOS アプリをデバッグ

Proxyman と Atlantis を使えば、社内 VPN が有効なままでも、開発中のアプリの通信を確認できます。

Proxyman をダウンロード