https通信をともなう携帯サイトを開発するにあたって、最近いくつかハマったのでメモ書き残し。
SSLルート証明書
ちゃんとした証明書をwwwサーバに入れておけばどのキャリアでも問題はないんですが、開発環境などでインチキ証明書を入れていると「証明書が不正です」などと言われて携帯電話実機ではアクセスできないことあり。
とくにauが条件厳しいです。DoCoMoやSoftbankではアクセスできてもauだと無理、なんて事態に。
携帯電話機にインストールされているルート証明書の詳細についてはこちらのサイトが詳しいです。
ドコモのimode ID
urlに「?guid=on」をつけることで今年4月から取得できるようになったiモードIDですが、httpsでの通信時には取得することができません。すべての通信でこっそり抜き取るような設計を考えているとイタい目にあいます。
ソフトバンクとhttps
ソフトバンクの技術情報サイトに書いてあるんですが、ソフトバンク端末からhttpsアクセスをすると、キャリア側のゲートウェイを通るときにurlが書き換わってしまいます。
https://www.foo.com/bar.html というURIはGWにて
https://secure.softbank.ne.jp/www.foo.com/bar.html と変換されます。
ホスト名などに依存したコードを書いていると、こういう思わぬところでイタい目に遭います。ええ。
cookieとhttps
auと、softbankの3G機種ではクッキーが利用できるということになっていて、実際に利用もできるのですが、httpsの場合はかなり注意が必要です。
ソフトバンクの場合は上記のとおり、httpsの場合はホスト名がGW側で変えられてしまいます。そのためcookieの保持ドメインが変わってしまい値が保持されません。
auの場合はさらに複雑です。
「KDDI au: そのほかの技術情報 > Cookie」によると
EZweb対応端末においてCookieは、EZサーバに保管されます。
※ ただし、WAP2.0ブラウザ搭載端末ではEnd to EndのSSL通信時は端末に保管されます。
なお、EZサーバに保管されたCookieはKDDI設備のメンテナンスなどによりリセットされる場合があります。
とありますが、実際の挙動はもっと複雑。すなおに行くかと思っているとイタい目に遭います。詳しくはこちらのサイトにすばらしいまとめがあります。
auのSSLでのCookieの挙動がおかしい - maru.cc@はてな
しっかし、ソフトバンクの技術情報サイトはころころurlが変わりますねえ。。。
パーマリンクが切れてしまって、古い情報を追っかけるのが大変ですわ。







