弊社ではPC上のブラウザで表示するWebアプリケーションの診断だけでなく、iOSやAndroid端末上のネイティブアプリケーションが使用するWeb APIもよく診断しています。
診断に使用するProxyツールはPCと同様にBurp(Burp Suite - Application Security Testing Software)を使用しています。
対象のネイティブアプリケーションがHTTPSを使用している場合、端末にBurpの証明書をインストールする必要があります。
本稿ではインストールの仕方を簡単に紹介します。
iOSの場合
端末のProxy設定でBurpの待ち受けているIPとポートを指定した状態で、Safariから http://burp/cert にアクセスします。
上記URLを指定すると、Burpから証明書が返されます。
iOSの場合はこの段階で証明書のインストール画面に遷移するので、そのままインストールすることが可能です。
インストールされた証明書は
設定 > 一般 > プロファイル で確認や削除が実施できます。
http://burp/cert というURLに対してBurpが特殊な対応をすることは、Burpの
Proxy > Options > Import / export CA certificate
を選択して表示される画面の上部に記載されています。
Androidの場合
http://burp/cert でBurpから返される証明書のファイル名はcacert.derです。
証明書を追加、削除する - Pixel Phone ヘルプには以下のように記載されています。
Android では、DER エンコードの X.509 証明書のうち、拡張子 .crt または .cer の付いたファイルに保存されたものをサポートしています。証明書ファイルの拡張子が .der などの場合は、.crt または .cer に変更しないとインストールできません。
拡張子がderのままではインストールすることができず、拡張子を変更する必要があります。
そこで一旦PCに証明書をダウンロードして、adb経由でAndroidに送ってインストールするというのが方法の1つになります。
PCでcacert.derをダウンロードした後、
$ adb push cacert.der /sdcard/cacert.cer
としてadb経由でAndroidの/sdcard直下にcacert.cerという名前で証明書を配置し、Android側で
メニュー > 設定 > セキュリティ > ストレージからのインストール
と操作することでインストールすることが可能です。