« クライアント証明書の有効期間 | メイン | スマホに外部キーボード »
2012年03月22日
スマートフォンでクライアント証明書
最近、携帯電話をAndroid(スマホ・・・Docomo SH-01D)に機種変更したのだが、仕事で構築したサイトの確認を行なう際、このスマホを使うことができない。
Androidのブラウザがクライアント証明書に対応していないせいだ。
ググってみると、『SandroB』というWebブラウザがあってクライアント証明書を使えるらしい。
さっそくマーケット(Playストア)でインストール。ところがこのソフト、私のスマホではそもそも起動しない・・・(^^;)。バージョンがいくつかあったので、色々試してみたがダメ。あきらめた。
次に『Firefox』での成功例がネット上にあったので、苦手な英語と格闘しながら導入を試みるもうまくいかず、結局あきらめた。
さらに探してみると『stone』というProxyソフトの成功例があったので、やってみるとうまくいった。
覚書として手順をメモっておく。
1.『Playストア』から「stone for Android」をインストール。
2.スマホの「本体設定」→「位置情報とセキュリティ」→「パスワードの設定」で、認証情報ストレージのパスワードを設定する(既に行なっている場合は省略して良い)。
3.スマホをPCとUSB接続し、SDカード上にクライアント証明書(p12ファイル)をコピー。
4.インストールした「stone」を起動し、メニューから『証明書のインストール』を選択。
5.さっきコピーしたSDカード上の証明書がリストに表示されるので、それをタップ。
6.証明書のパスワードを入力し、OKをタップ(このとき証明書ストアの名前を付ける)。
7.「stone」の画面の上段にある入力欄の『SERVERNAME』を接続したいサイトのドメイン名に変更。
(例)
接続したいサイトのURLが
https://xxx/aaa/bbb
及び
https://xxx/ccc/ddd
とすると、『SERVERNAME』の箇所は『xxx』に変更する。
「stone」の入力欄は以下のようになる。
【 -dd -q store=証明書ストア名 xxx:443/ssl localhost:1443 】
8.「stone」の『Run』をタップすると、バックグラウンドで起動する。
9.Webブラウザを起動し、「stone」に接続する。
(例)
URLには(先ほどの例であれば)
http://localhost:1443/aaa/bbb
または
http://localhost:1443/ccc/ddd
で接続できる。
なお、クライアント証明書は自動的に提示される。
(注:ブラウザからhttps接続するわけではない・・・あくまでもhttp接続で「stone」に接続する)
ちなみに、『SandroB』が動く方はこれが最も簡単(動いたことが無いので推測(笑))だと思う。
また、スマホをroot化(root権を取っている)しているならば、『Firefox』がうまくいくはず。
私の場合、そのどちらでもないので多少苦労した(「stone」の設定は非常に簡単だったが・・・)。
投稿者 masatsu : 2012年03月22日 17:32