サーバ証明書が不正って怒られる件(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のhttpshttpにして試したところ、無事認証を得ることができました
ただ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: &quot;*&lt;ja:en&gt;&quot;;" /><br /> 
パスワード <input class="password" id="password" name="password" size="14" type="text" style="-wap-input-format: &quot;*&lt;ja:en&gt;&quot;;" /><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