-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_SmartphoneSelfSignedCert
出来ないと開発時に困るヤツ。
-
基本的に、公開サーバとして配置するか、
(上記の組合せだと、プライベートIPがダメ)
-
スマホ側で証明書の検証を無効化するしかない。
スマホ側で証明書の検証を無効化する方法。
未記載(元 Wiki も見出しのみ)。
-
ネットワーク セキュリティ構成(Network Security Configuration)で設定可能。
-
以下、「@」はsrc/(main or debug)/resフォルダ以下であることを表している模様。
-
AndroidManifest.xml から network_security_config.xmlを参照する。
(この際、拡張子があっても、定義に拡張子は含めない)<application android:name=".MyApp" android:networkSecurityConfig="@xml/network_security_config">
-
res/xml/network_security_config.xmlファイルに以下を設定する。
(配置するファイルに、拡張子はあっても良い)-
main
特定ドメインに対して証明書を許可。<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config> <domain includeSubdomains="true">example.com</domain> <trust-anchors> <certificates src="@raw/my_ca"/> </trust-anchors> </domain-config> </network-security-config>
-
debug
debugなBuild Variantsで証明書を許可。-
main側
空の設定を置いておく。<?xml version="1.0" encoding="utf-8"?> <network-security-config> </network-security-config>
-
debug側
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <debug-overrides> <trust-anchors> <certificates src="@raw/my_ca"/> </trust-anchors> </debug-overrides> </network-security-config>
-
-
-
res/raw/my_ca にPEM または DER 形式の
自己署名証明書または非パブリック CA 証明書を追加。- 通常時はsrc/main/res/raw/my_ca
- debug時はdebug/res/raw/my_ca
- 同様に、証明書に拡張子があっても定義に拡張子を含めない。
- 実際に配置するファイルに拡張子はあっても良い。
-
証明書以外に、system、userの文字列を設定可能。
- system:プリインストールされたシステムの CA 証明書。
- user:/system/etc/security/cacerts以下に追加した証明書
未記載(元 Wiki も見出しのみ)。
-
Google Developers Japan: Android Nougat における認証局の変更
https://developers-jp.googleblog.com/2016/08/android-nougat-ca-change.html- ネットワーク セキュリティ構成 | Android デベロッパー | Android Developers
https://developer.android.com/training/articles/security-config?hl=ja
- ネットワーク セキュリティ構成 | Android デベロッパー | Android Developers
-
Network Security Configurationについて - Android N - リスクファインダーブログ
https://blog.riskfinder.co.jp/2016/03/network-security-configuration-android-n.html -
AndroidのプレインストールされたCAにCAを追加する - 試運転ブログ
https://otameshi61.hatenablog.com/entry/2017/12/03/151706 -
独自証明書のインストールが許可されていないAndroid端末で、
アプリデバッグ時にCharlesによるHTTPSトラフィック解析をする方法 - Qiita
https://qiita.com/katz/items/d1beaeb69683948dc947
移行メモ
- 「user:/system/etc/security/cacerts以下に追加した証明書」は原文ママ。 Android の user CA ストアは実際には
/data/misc/user/0/cacerts-addedであり、/system/etc/security/cacertsはシステム CA 側のパスである。- 同名の見出し(「iOS」「Android」)が詳細と参考の両方にあり GitHub Wiki でアンカが衝突するため、参考側は括弧で文脈を補って一意にした。
- 本文の無い見出し(iOS の 2 箇所)は、その旨を明示した。
- 元 Wiki の行頭空白によるプレフォーマット・ブロックは、 フェンス付きコードブロックにした。
- リンク先が未移行のページは、移行先のファイル名を
`DNET_○○.md`の形で示し TODO.md に登録した。
Tags: 移行, Android, iOS, 自己署名証明書, Network Security Configuration, CA証明書, HTTPS, デバッグ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。