サーバ証明書が不正って怒られる件(WJ42018E)
TwitterのAPIをOAuthで使ってみる(入門)の続きです。
携帯でTwitterの認証用URL(Twitter)を利用できるか、確認してみました。
APIを叩いてTwitterの認証を得る場合。
携帯用クライアントでも、初回のこの操作はなぜかPC上ですることが要求されているようです。
先日まではTwitterの登録はPC上でしかできなかったためかもしれないのですが、原因が思い当たらないので、携帯上で試してみました。
……携帯サイトって作ったことないから、全く検討つかないんですよねぇ。
セッション周り?とか思ってました。
試した機種は、Softbank Mobileの905SHです。
エラーが発生しました。サーバ証明書が不正です。(WJ42018E)
Softbank Mobileの場合、サーバのSSL認証局に対応していない携帯からSSLアクセスをすると、このように表示され一切利用できないようです。うーむ。
auも「このサイトは安全でない可能性があるため接続できません(発行者エラー)」とでて、同様。
DoCoMoのみ、「このサイトの安全性が確認できません 接続しますか?(はい/いいえ)」とでるそうです。
▽SSL設定について(ウーマンライフ研究所 携帯サイト制作システム サポートページ)
http://support.womanlifelabo.net/cat9/
確認したところ、Twitterは「Equifax Secure Global eBusiness CA-1」。
ベリサインのグローバル・サーバID EV for Mobileでなければ100%この問題を回避することはできないのですね。はふぅ
▽携帯電話とSSLルート証明書
http://triaez.kaisei.org/~kaoru/ssl/cell.html
▽携帯電話でのSSLについて(参考資料)
http://www.marguerite.jp/Nihongo/WWW/Mobile/SSL.html
とりあえず最悪の手段ですが、Twitterの認証用URLのhttpsをhttpにして試したところ、無事認証を得ることができました。
ただSSLでない画面からUsernameとPasswordを入れさせるというのは若干ためらいがありますね(携帯だと意識していない人も多そうですが、だからこそ万が一を考えると怖い)
で、公式を確認すると
<form action="http://twtr.jp/login?guid=ON" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="PtUm2S4VPJ4t9lfVjjeW2riIY5zOy9AZREL6n+Nbl5o=" /></div> ユーザー名 <input class="screen_name" id="login" name="login" size="14" type="text" style="-wap-input-format: "*<ja:en>";" /><br /> パスワード <input class="password" id="password" name="password" size="14" type="text" style="-wap-input-format: "*<ja:en>";" /><br /> <input name="commit" type="submit" value="ログイン" /><br /> </form>
https使ってなーい。
携帯だから仕方ないよね、ってことなんでしょうか。
まぁ仕方ないよね……SSL局変える以外回避手段ないもんねぇ
(機種別に提供するURLをhttpsとhttpで使い分けていたら偉すぎる)
……これだけで安心すると危険なので、携帯サイトのオーソドックスな作り方を他で確認しておこうと思います。
外のサービスだとどうしようもないという結論の気がしますけど。
ちなみにいやーな話としては
▽SSLの脆弱性でTwitterのパスワード入手に成功(ITmedia)
http://www.itmedia.co.jp/enterprise/articles/0911/17/news021.html