AdGuardをオンにしたら突然スマホ銀行アプリがクラッシュしたり、無限ローディング状態になったり、「ネットワークエラー」と表示されたり——その原因の9割はHTTPS証明書フィルタリングと銀行アプリのセキュリティ仕組みの衝突です。AdGuardをアンインストールする必要も、セキュリティを諦める必要もなく、数分で解決できます。
なぜAdGuardが銀行アプリを動かなくするのか?
簡単に言えば、AdGuardの広告ブロックはWebページ上のバナーを非表示にするだけではありません。暗号化されたトラフィック内の広告やトラッカーをフィルタリングするには、スマートフォン上で「中間者」として動作する必要があります。つまり、HTTPSトラフィックを復号し、チェックした後にアプリへ転送するのです。そのために、AdGuardはローカルCA証明書のインストールを求め、デバイスにこの中間者を信頼させます。
問題はここにあります。銀行アプリは通常のアプリよりはるかに高いセキュリティ要件を持ち、多くは証明書ピンニング(Certificate Pinning)技術を実装しています。つまり、アプリは銀行自身のサーバーが発行した特定の証明書のみを信頼し、中間者が発行した証明書はシステムがAdGuardのルート証明書を信頼していても拒否します。
銀行アプリが証明書チェーンに自分が信頼しない要素を検出すると、接続を即座に切断します。これが画面上で開かない、白画面、クラッシュ、「サーバーに接続できません」「ネットワークプロキシが検出されました」といった表示につながります。これはAdGuardのバグではなく、二つのセキュリティポリシーの正面衝突です。
最も簡単な解決法:銀行アプリをフィルタリングリストから外す
銀行がAdGuardの証明書を信頼しないのなら、AdGuardにそのトラフィックを処理させなければいいのです。この操作はAdGuardでは「ホワイトリスト」に追加する、またはそのアプリのフィルタリングをオフにすることと呼ばれ、端末の他の部分の保護には影響しません。
操作手順(Android版最新UIを例に。iOSも同様のロジック):
- AdGuardアプリを開き、下部ナビゲーションバーからシールドアイコンをタップして「保護」ページに移動します。
- 「アプリ管理」をタップすると、端末にインストールされているアプリ一覧が表示されます。
- 検索ボックスに銀行アプリの名前を入力します。例:「ICBC」「China Merchants Bank」「China Construction Bank」など。
- 該当アプリをタップし、「すべてのトラフィックをAdGuard経由でルーティング」または「HTTPSフィルタリングを有効にする」スイッチを探し、オフにします。
- メイン画面に戻れば即座に有効になります。端末の再起動は不要です。
この設定後、銀行アプリの全トラフィックはAdGuardのHTTPSフィルタリングモジュールを完全にバイパスし、システムデフォルトの暗号化接続状態に戻ります。そのため証明書警告は発生しません。DNSレベルのフィルタリングやSafariブラウザの保護は引き続き正常に動作し、銀行アプリ自体に広告はありません(画面はネイティブレンダリングで、そもそもブロックすべき広告がないため)。フィルタリングをオフにしてもほとんど損失はありません。
別のアプローチ:証明書対応できないアプリに対して一括でHTTPSフィルタリングをオフにする
アプリを一つずつ変更したくない場合や、どのアプリが問題を起こすか曖昧な場合は、HTTPSフィルタリング設定で「例外リスト」を管理できます。
AdGuard → 設定 → HTTPSフィルタリングに進むと、2つの重要な入口が表示されます:
- HTTPSフィルタリングスイッチ:グローバル制御用。これをオフにしないでください。オフにすると暗号化トラフィックが一切チェックされず、能力を自ら放棄することになります。
- アプリホワイトリスト/例外リスト:タップして手動でフィルタリング不要のアプリを選択。銀行系、証券系、決済系アプリをすべて選択しましょう。
ここで便利な小技:まずすべての金融系アプリを一括でホワイトリストに追加し、後で新しい資産運用や銀行アプリをインストールしたら、すぐにここを確認する習慣をつけましょう。銀行アプリは頻繁にアップデートされ、あるバージョンで突然より厳しい証明書検証を導入する可能性があります。事前にホワイトリストに入れておけば、急いで送金しようとしてアプリが動かないという事態を防げます。
もう一つのよくあるケース:システム証明書とユーザー証明書の衝突
Android 7.0以降、システムはユーザーが自分でインストールしたCA証明書に対して厳しい制限を設けています。デフォルトでは、システムにプリインストールされた証明書のみがアプリに信頼され、ユーザーが手動でインストールした証明書(AdGuardがインストールさせたものも含む)は、「ユーザー証明書を信頼する」とマークされたアプリにのみ有効です。ほとんどの銀行アプリはシステム証明書のみを強制的に信頼するため、証明書をインストールしても銀行アプリはそれを全く信頼しません。
AdGuardのHTTPSフィルタリングはこのユーザー証明書に依存しており、銀行アプリはまさにユーザー証明書を信頼しない——これがデッドロックの原因です。
iOSの場合は状況がやや良好です。AdGuardはローカルVPNまたはプロキシ方式でトラフィックを処理するため、証明書信頼の設定が比較的一貫しています。ただし、iOS版AdGuardをインストールして「高度な保護」を有効にした場合は、AdGuardの証明書を信頼するためのプロファイルをインストールする必要があり、銀行アプリがそれを受け付けない可能性があります。解決方法はAndroidと同じで、該当アプリのHTTPSフィルタリングをオフにするか、設定からフィルタリング範囲から除外します。
トラブルシューティングで見落としがちな詳細
上記の手順でホワイトリストを設定しても銀行アプリが正常に動作しない場合、焦らずに以下の点を確認してください:
- AdGuardバイパス/プロキシの残留:一部のカスタマイズされたAndroidシステム(MIUI、ColorOS、HarmonyOSなど)では、AdGuardが許可を示していても、システムが古いプロキシ設定をキャッシュしている場合があります。AdGuardの保護全体スイッチを一度オフにし、5秒待ってから再度オンにするか、機内モードを切り替えてネットワーク状態をリフレッシュしてみてください。
- VPNモードの制限:AdGuardはAndroidでは通常ローカルVPNモードで動作しますが、一部の銀行アプリは端末がVPNを使用しているかどうかを検出し、検出するとサービスを拒否します。この場合、HTTPSフィルタリングをオフにするだけでは不十分で、該当アプリを「VPN経由でルーティングしない」設定にする必要があります。同じ「アプリ管理」画面でルーティングトラフィックスイッチもオフにしてください。
- システム時刻のずれ:証明書検証は正確なシステム時刻に強く依存します。手動で設定した時刻に大きな誤差があると、証明書自体が問題なくても、銀行アプリのSSLハンドシェイクが失敗します。自動時刻同期を有効にして、端末をキャリアまたはネットワーク時刻に合わせてください。
実際の体験:どの銀行アプリが特に敏感か
電子機器のヘビーユーザーとして、私は常にAdGuardをオンにしており、複数の銀行アプリもインストールしています。実際の経験から言うと、国有大手銀行のアプリは証明書の変更に非常に敏感です——ICBC、China Construction Bank、Agricultural Bank of China——証明書チェーンに少しでも異常があれば即座に停止し、中には何の警告もなくクラッシュするものもあります。China Merchants BankやShanghai Pudong Development Bankは比較的寛容で、「ネットワークが安全ではありません」という注意が表示される程度で、手動で閉じればそのまま使い続けられます。Bank of ChinaのBOC Cross-Border GOや一部の地方銀行アプリもほぼ同じセキュリティポリシーなので、一律にホワイトリストに入れることをお勧めします。
証券系アプリにも同様の特徴があります。例えば、Huatai ZhangLeCaiFuTong、TongHuaShunなどは、問題が発生すると銘柄情報が読み込めなかったり、取引画面で「ネットワークエラー」と表示されることが多いです。解決方法は全く同じで、AdGuardのフィルタリングをオフにすればOKです。
かつて、ある銀行アプリがアップデート後に突然起動画面でフリーズしたことがありました。十数分かけて調査した結果、そのアプリがこっそり証明書検証ポリシーを厳しくしていたことが判明し、AdGuardの例外リストにそのアプリが入っていなかったのです。ホワイトリストに追加し、アプリを再起動すると全てスムーズに戻りました。この経験から、アプリのアップデート時に慌てるのではなく、金融系アプリは事前に一律でフィルタリング対象から外しておくのが賢明だと痛感しました。
ホワイトリストだけでは足りない場合:AdGuard証明書を再インストール
ごくまれに、証明書自体が破損していたり期限切れになっていると、正しくホワイトリストを設定してもHTTPSフィルタリング全体の動作が異常になり、銀行アプリもその被害者の一つになります。その場合は証明書をリセットしてみてください:
- AdGuard設定 → HTTPSフィルタリングに進みます。
- HTTPSフィルタリングのメインスイッチをオフにします。
- 端末のシステム設定 → セキュリティ → 暗号化と認証情報 → 信頼できる認証情報(端末によりパスが異なる)に戻り、「ユーザー」タブでAdGuardの証明書を見つけて手動で削除します。
- AdGuardに戻り、HTTPSフィルタリングを再度オンにし、指示に従って証明書を再インストールします。
- 端末を再起動します。
このプロセスは中間者の身分を再登録するようなもので、システムアップデートや証明書移行に起因する奇妙な問題を解決できます。ただし、証明書を再インストールした後は、ブラウザの暗号化接続が再確立されるため、一部のアプリで一時的に接続遅延が発生することがありますが、正常な現象です。
これらの操作は後悔するかもしれません
ネット上では、「銀行アプリをAdGuardから逃がすために、端末全体のHTTPSフィルタリング機能をオフにしろ」というアドバイスを見たことがあります。これは、たまにしか使わない銀行アプリのために、すべてのアプリのプライバシー保護を放棄するに等しく、絶対にお勧めできません。また、「端末をRoot化してAdGuard証明書をシステム信頼領域に移動させろ」という意見もありますが、操作の難易度や文鎮化リスクはさておき、Root化した端末は銀行アプリ自体が実行を拒否するため、まったく別の袋小路に入り込むだけです。
最も合理的な戦略はシンプルです:グローバルHTTPSフィルタリングを有効に保ち、AdGuardによる快適な体験を享受しながら、証明書に敏感なごく一部の金融系アプリだけをフィルタリング範囲から外すことです。このバランスはセキュリティを犠牲にせず、日常の決済にも影響を与えません。
まだAdGuardを導入していない方、または無料版や機能制限版をお使いで、高度な機能が不足してこのような問題に悩まされている方に、お得な情報があります。TitikeyではAdGuard正規版永久ディスカウントサブスクリプションをわずか$24.99で提供しています。公式サイトの30ドル超えに比べて非常にリーズナブルで、1アカウントで複数デバイスをカバーでき、長期間使えばコーヒー数杯分も節約できます。AdGuard VPNやAdGuardファミリープランと組み合わせれば、家族全員のネット環境をすっきりさせ、銀行アプリの小さなわがままで頭を悩ませることもなくなります。
このガイドが、AdGuardと銀行アプリという相性の悪いふたつを、お互いに干渉しない隣人関係に調整するお役に立てれば幸いです。新しい問題が発生したら、まずは証明書とフィルタリング設定から調べてみてください。十中八九効果があります。