件名: httpとhttpsの同居につきまして

投稿日: 01/31/17 11:26 PM JST
投稿者: yonezawaizumi

大変にごぶさたしております。

httpとhttpsを、同じサイトとして同居運用することについて、ご教示をいただきたく、書き込ませていただきます。

先に「実現可能かどうかをぜひ知りたい」ことがらをまとめますと、以下のとおりとなります。
これらは可能なのか、ご教示いただけると大変に助かります。

以下、超長文で、上記の背景を書かせていただきます。

現在、降りつぶし.netというサイトをGeeklogで運用させていただいておりまして、その中で登録ユーザー専用の機能として、独自のデータをユーザーごとに登録・編集すること、およびiPhone用・Android用の同様のアプリとそのデータを同期させること、を、UIをシームレスにつなぐ形で実装し、同様に運用させていただいております。

おかげさまでとても快適なサービスを提供できている自負もあるのですが、このたび、iPhoneアプリにおいて「ATS」という、「https通信を原則として義務付ける」というルールが秒読みとなっておりまして、それで困難に陥ることが必至となってしまったのです。
これに対応するためには、少なくともiPhoneアプリにおいて、Geeklog内のデータと同期をするためのURLを、httpsにしなければならなくなります。

もちろん、一般論として、個人情報をお預かりするサービスなので、すべてをhttpで統一できればベターには違いなく、この際一気にhttpsに切り替えてしまう、というのが理想論です。
しかし実際には、現在iPhoneアプリとしてリリース可能なのはiOS 8.0以降対応のもののみであり、iOS 7以下のままで以前のアプリを使っている方はhttpでしかアクセスができません。
またAndroidに関しても、現在のGoogle Play開発者サービスが2.3以降にしか対応していないため、以前リリースしていた版の対応下限であった2.2のユーザー(ごく少数ながらいらっしゃいます)もhttpでしかアクセスできないのです。

「それならば、ログイン画面へのアクセスを、httpsにリダイレクトすればよいのでは?」という対応策はすぐ思いつきますが、以下の理由で、それも困難です。
現状、iPhoneアプリ・Androidアプリともに、GeeklogのユーザーIDの値で、Geeklogに統合された独自データをユーザー別に管理しています。そのため、両スマホアプリとGeeklogとでデータを同期する際には、エンドユーザーにGeeklogにログインしていただく必要があります。
そしてそのログインは通常のパスワードログインの他、TwitterのOAuthにも対応しておりますが、その遷移はアプリ内部のWebView内で行っております。そうしないと、Twitter認証をシームレスに行えないためです。
しかし、Twitterの認証画面内にはさまざまな、別ページへと遷移するリンクがあります。そしてこれらをタップされてしまった場合、本来Geeklogとデータを同期するための画面のはずが、際限なく別サイトに遷移できることになってしまい、ユーザービリティーが悪くなったり、それをキャンセルするUIをWebView外に設けなければならなくなったりする、という問題があるのです。
そのため、アプリのコードで、そのWebView内でリンクがタップされた場合、そのURLを見て、認証内の遷移でない場合はアプリ外の標準ブラウザーを起動させる、という実装にせざるを得ません。そしてその判定のために、リクエストURLを文字列マッチングでチェックするコードが両スマホアプリに組み込まれており、それがhttpで判定されてしまっているのです。
その結果、古いスマホアプリでは、リダイレクトによるhttpsの強制が不可能になってしまっております。

これらの事情により、サイトのhttps化を図るには、

のいずれかしかない、ということになってしまっております。

なお、Geeklogのバージョンを1.8.0から上げていない理由は、当時いくつかの不満があり、独自にコードにパッチをあてたのですが、その差分の管理を当時怠ってしまったため、アップデートがめんどうだ、というものです(^^ゞ。こちらは私だけの努力でどうにかなることなので、必要とあらばもちろんやることができます。

以上、なにとぞよろしくお願いいたします。


書込: httpとhttpsの同居につきまして

投稿日: 02/01/17 04:40 AM JST
投稿者: Ivy

おひさしぶりです!

両方で活用するhackは、Wikiをどうぞ。
http://wiki.geeklog.jp/index.php?title=SSLと両方で運用する
どういったパッチをあてられたのかがわかれば、それを本体に、コンフィギュレーションで設定できるようにするなどしますので、目的とハック内容をフィードバックしていただけると助かります^^

GitHubでforkしてプルリクなど。

書込: httpとhttpsの同居につきまして

投稿日: 02/01/17 08:59 AM JST
投稿者: yonezawaizumi

Ivyさん、ありがとうございます!
まさに足下暗し、Wikiの検索を怠っておりました。

これって、管理画面のコンフィギュレーションで登録しているサイトURLなどもすべて実行時に上書きされる、という理解でよいでしょうか?

旧来のハックについては現バージョンでは不要になっているものもあるかもしれず、というかそもそも当の私がすっかり何をどうしたかすら覚えていないので(゜o゜;、この機会にじっくり元ソースとの差分とさらに現行最新ソースを見て、調べてみて、もし提案できることがあればプルリクしようと思います。


書込: httpとhttpsの同居につきまして

投稿日: 02/01/17 09:29 AM JST
投稿者: Ivy

Quote by: yonezawaizumi

これって、管理画面のコンフィギュレーションで登録しているサイトURLなどもすべて実行時に上書きされる、という理解でよいでしょうか?

はい、そうです! プルリク、お待ちしています!

書込: httpとhttpsの同居につきまして

投稿日: 02/05/17 02:01 PM JST
投稿者: yonezawaizumi

おかげさまで、httpとhttpsでの混用運用ができるようになりました! ありがとうございました。 プルリクの検討はまた改めまして(^^ゞ

書込: httpとhttpsの同居につきまして

投稿日: 02/05/17 03:33 PM JST
投稿者: Ivy

よかったです!

Geeklog Japan - 掲示板
https://www.geeklog.jp/forum/viewtopic.php?showtopic=18733