API代理通信を使用する Android7以上

API代理通信が必要な理由

  • API対応2ch専ブラアプリは https:// SSL経由でスレ取得します
  • この状態でDetourは https:// SSL暗号化で内容がわからないため通信の転送しかできません
  • API代理通信機能を使用することでAPI対応2ch専ブラアプリでもDetour機能を使用することができます

設定時の注意/制限

  • 下記証明書インストール説明は Android7以上 です
  • Android4以上6以下にあるセキュリティ制限はありません
    例 画面ロック解除になしが使えずパスワードなど必須になる→制限なし
  • 動作確認終わったらCA証明書/サーバ証明書を自分で作成し直してください

API代理通信を使用する

  • Android版にはAPI代理通信動作確認用CA証明書,サーバ証明書サンプルファイルを添付しています
    このファイルを使用した設定手順を説明します

Android専ブラアプリのリソースに自己CA証明書を追加する難度高

Android専ブラで使用する機能を限定すればこの設定をしないでDetourを使用することも可能です
専ブラごとの設定例を参照してください
  • 参考 既定の信頼される証明機関 - Android Developers
    既定では、Android 7.0 用アプリは、システムが提供する証明書のみを信頼し、
    ユーザーが追加した証明機関(CA)を信頼しません。
    ユーザーが追加した CA を信頼する必要がある Android N 向けのアプリは、
    ネットワーク セキュリティ構成を使用して、
    ユーザー CA を信頼する方法を指定する必要があります
  • Android7以上ユーザーCA証明書を信頼してもらうAPI代理機能を使用する には
    使用するAndroid専ブラ アプリのリソースにユーザーCA証明書を追加する 必要があります
  • 参考 ネットワーク セキュリティ構成 - Android Developers
    システムで信頼されていない CA を、アプリが追加で信頼しなければならない場合があります。
    これは、システムに CA がまだ組み込まれていなかったり、
    CA が Android システムに組み込まれるための要件を満たしていないことが原因です。
    CA を追加するには、アプリの構成で複数の証明書ソースを指定します。
  • Android版にはAPI代理通信動作確認用CA証明書サンプルファイルを添付しています
    このファイルを使用したリソース設定手順を説明します
  • resフォルダ以下に xmlとrawフォルダを作成 します
    フォルダイメージは次のとおりです
    │  AndroidManifest.xml
    ├─res
    │  ├─raw
    │  │
    │  ├─xml
  • ./res/xmlフォルダに network_security_config.xmlファイルを新規作成 します
  • 文字コードUTF-8改行LF にします
  • 内容は次のとおりにしてnetwork_security_config.xmlファイルに保存します
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
            <base-config>
                <trust-anchors>
                    <certificates src="system"/>
                    <certificates src="user"/>
                    <certificates src="@raw/detourroot"/>
                </trust-anchors>
            </base-config>
    </network-security-config>
  • 添付DetourCA.crtファイルを ./res/rawフォルダにコピー します
  • ./res/raw/DetourCA.crtファイルを ./res/raw/detourrootファイルに名前変更 します
  • ./AndroidManifest.xmlファイルを編集します
  • <application 」を探します
  • タグが閉じる「>」の前に次を挿入します
    android:networkSecurityConfig="@xml/network_security_config"
  • 次のとおりになっていれば./AndroidManifest.xmlファイルに保存します
    <application
     略 android:networkSecurityConfig="@xml/network_security_config">
  • フォルダイメージが次の状態になっているのを確認したら
    自分で使用するAndroid専ブラアプリのビルド・署名・再配置など を行います難度高
    │  AndroidManifest.xml
    ├─res
    │  ├─raw
    │  │      detourroot
    │  ├─xml
    │  │      network_security_config.xml
  • これで使用するAndroid専ブラアプリのリソースに自己CA証明書を追加できました
    次の組み合わせでAPI代理通信機能動作確認済みです
    Android7以上 + Androidアプリ(自分でリソースに自己CA証明書追加) + DetourAndroid版

サーバ証明書を設定する

  • Detourに.5ch.net用サーバ証明書設定をする
  • 添付下記ファイルをその他-Detourの情報を表示する-保存パスのフォルダに置きます
    a004.jpg
    • API対応2ch専ブラアプリが api.5ch.net:443 を使用している場合
      DetourSV.5ch.net.crt
      DetourSV.5ch.net.key
    • API対応2ch専ブラアプリが api.2ch.net:443 を使用している場合
      DetourSV.2ch.net.crt
      DetourSV.2ch.net.key
    • どちらの場合でもAPI SERVERは api.5ch.net に設定します
      a039.jpg
      通信-サーバ関連の設定-API SERVER
  • Detour起動-通信-Proxy関連の設定をする-その他設定をするをタップします
  • OpenSSLにチェックします
    a021.jpg
  • SSL代理通信を許可するにチェックします
  • API代理通信を許可するにチェックします
    a022.jpg
  • 1回だけ戻ります
  • 個別Proxyリストを設定するをタップし.5ch.net設定が先頭にある事を確認します
  • 3回戻りメイン画面に戻ります
  • 動作を確認します
  • 2chAPI対応専ブラで適当なスレを取得してみます
  • 上のステータスバーでDetourをタップしログに「API代理通信 APItoDAT変換取得」と表示があれば成功です
    a023.jpg

API代理通信使用をやめる

  • DetourでAPI代理通信使用をやめる設定をします
  • Detour-通信-Proxy関連の設定をする-その他設定をするをタップします
  • SSL代理通信を許可するチェックはずして1回戻ります
  • 個別Proxyリストを設定するタップします
  • 先頭api.5ch.netタップします
  • 削除するをタップします
  • 3回戻りメイン画面に戻ります

自分用にCA証明書/サーバ証明書を作りなおす方法

  • 下記説明はWindows,C:\OpenSSL-Win32にOpenSSLインストールしていると仮定します
  • Linuxなどは適当に読み替えてください
  • 設定ファイル事前編集をします
    テキストファイルを開く
    C:\OpenSSL-Win32\\bin\openssl.cnf
    [ usr_cert ]行を探す
    basicConstraints=行を書き換える
    	basicConstraints = CA:TRUE
    # nsCertType = client, email, objsign行を探す
    その下の行に下記行を新規追加する
    	nsCertType = sslCA, emailCA
    # keyUsage = nonRepudiation, digitalSignature, keyEncipherment行を探す
    その下の行に下記行を新規追加する
    	keyUsage = cRLSign, keyCertSign
    保存して終了する
  • CA証明書を作成します
    コマンドプロンプトを開く
    >cd /d C:\OpenSSL-Win32\bin\
    ※-subjの各「DetourXXXX」を適当に変えてください
    添付したDetourCA.crtは下記で作りました
    >openssl req -new -x509 -newkey rsa:2048 -out D:\DetourCA.crt
    -keyout D:\DetourCA.key -days 3650 
    -subj "/C=JP/ST=DetourState/L=DetourCity/O=DetourCompany/OU=DetourSection/CN=Detour"
    適当に変えた場合
    >openssl req -new -x509 -newkey rsa:2048 -out D:\DetourCA.crt
    -keyout D:\DetourCA.key -days 3650
    -subj "/C=JP/ST=abcd/L=efg/O=hijk/OU=lmn/CN=opqr"
    末尾/CN以外の適当に変えた「/C=JP/ST=abcd/L=efg/O=hijk/OU=lmn」は
    下サーバ証明書作成でそのまま使用するのでメモしておきます
  • サーバ証明書を作成します
  • リネームします
    C:\OpenSSL-Win32\bin\PEM\demoCAをdemoCA.orgとか
  • フォルダ作成します
    C:\OpenSSL-Win32\bin\PEM\demoCA ※改めて作成
    C:\OpenSSL-Win32\bin\PEM\demoCA\private
    C:\OpenSSL-Win32\bin\PEM\demoCA\crl
    C:\OpenSSL-Win32\bin\PEM\demoCA\certs
    C:\OpenSSL-Win32\bin\PEM\demoCA\newcerts
  • テキストファイルを作成します
    C:\OpenSSL-Win32\bin\PEM\demoCA\serial
    内容 「01」と半角2文字と改行
    C:\OpenSSL-Win32\bin\PEM\demoCA\index.txt
    内容はなし,0バイト
    C:\OpenSSL-Win32\bin\PEM\demoCA\index.txt.attr
    内容 「unique_subject = yes」と半角20文字と改行
  • コマンドプロンプトを開きます
    >cd /d C:\OpenSSL-Win32\bin\PEM
    上で設定した/CN以外の適当に変えた「/C=JP/ST=abcd/L=efg/O=hijk/OU=lmn」内容に置き換えてください
    /CNだけは/CN=*.5ch.netにします
    添付したDetourSV.5ch.net.crtは下記で作りました
    >..\openssl req -new -key D:\DetourSV.5ch.net.key
    -subj "/C=JP/ST=DetourState/L=DetourCity/O=DetourCompany/OU=DetourSection/CN=*.5ch.net"
    > D:\DetourSV.5ch.net.csr
    適当に変えた場合
    >..\openssl req -new -key D:\DetourSV.5ch.net.key
    -subj "/C=JP/ST=abcd/L=efg/O=hijk/OU=lmn/CN=*.5ch.net"
    > D:\DetourSV.5ch.net.csr
  • 署名して完成させます
    >..\openssl ca -days 3650 -cert D:\DetourCA.crt
    -keyfile D:\DetourCA.key
    -in D:\DetourSV.5ch.net.csr
    > D:\DetourSV.5ch.net.crt
  • できたDetourCA.crt,DetourSV.5ch.net.crt,DetourSV.5ch.net.keyファイルを 上記手順でインストールしてみます

添付ファイル: filea039.jpg 56 download [詳細] filea023.jpg 87 download [詳細] filea022.jpg 119 download [詳細] filea021.jpg 60 download [詳細] filea004.jpg 78 download [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019.12.14