ARecX6ってよさげだったので、導入してみた。
#お買い求めはこちら。
静岡には基本6局しかないので、6局用のARecX6は必要十分な機能と言える。
このARecX6、DHCPだろうが固定だろうが、割り振られたIPアドレスを使ってのHTTPS(443ポートへのアクセス)によって動画データを転送するようだということが、netstatによって分かったので、視聴の前に証明書の取得が必要な理由も恐らくそのため(自家証明書のルート用)と理解。
ホスト名をhostsヘッダでマッピングしてアクセスしても視聴できる(ホスト名判別していない)ことを確認した上で、視聴ページのHTML内容を見ると、Flashの引数としてIPアドレスが埋め込まれているのだが、あとはこいつを弄ってやれば、外部からアクセスできんじゃね?という素人考えからスタート。
Flashに与える引数のIPアドレスでSSL証明書が送られてくるとすれば、HTTPSに使用する証明書のチェインを正しく構成しないと、視聴用のFlashクライアント(ファームバージョン2.10)が動画取得に失敗するので、外部から見えるホスト名と対応し、正しくチェインを構成できる証明書を利用する必要もあるという点も注意しつつ。
しつつしつつで、自分でIIS上で動くプロキシっぽいコード組もうと思ったんだけど、どうもうまくいかない。
#修行不足。
そこで、ARR。
v2.1の日本語版も出ているようなので、こいつを導入。
#Windows7でインストールしたところ、実行時に昇格してくれないようなので、Administrator以外の場合、あらかじめ管理者権限で実行する必要がある。
サーバファームとして、SSLオフロードを無効(SSLアクセスがあったら、ARecX6に対してもSSLアクセス)にして、ARecX6のIPアドレスを指定。
URL書き換え規則と、コンテンツ書き換え規則(ここ重要)を作成して、SSL有効なサイトを作ればできあがり。
#コンテンツ書き換えは、IPアドレスを外部から見えるホスト名に書き換えるように定義する。
ただ、何にもしないと、不特定多数からのアクセスもスルーされてしまうので、認証くらいは付けておきたい。
#BASIC認証モジュールつくって付けたけど、httpだと盗聴可能なことに気づき、http側もhttps化を検討中。
##ホスト名を2つ用意すれば解決できるはずだけど・・・
なお、同じような方法を試してうまくいかなくても、俺は知らん。
あと、残念なことに、PHSでアクセスしたら、転送スピード不足ではじめの数コマ程度しか視聴できず。
WiMAXとか、公衆無線LANだったらいけるかも知れない。
#W-OAM typeGのx8でも厳しいんじゃないかと。
(追記)
フルHTTPS化できた。
これでBASIC認証でも大丈夫!
分かりにくいので、図解しておこう。
↑こんな感じ。
User-Agentで切り分ければ、サイトは1つで済むんだろうけどさ。
#hoge1とhoge2は実際の名前ではありません。
IISが動いているマシンに、ARecX6のルート証明書をインストールしておく必要があるのと、外部向けIPアドレス1つの場合、hoge1とhoge2に共通で使えるワイルドカード証明書を用意する必要がある。
逆に言うと、ワイルドカード証明書さえあれば、サイト作り放題だから、User-Agent切り分けする必要が無いってことだな。
(追追記)
このサイトは上記の仕組みも含め、Windows 7で動いている。
Windows 7は32bit版もあるから、ちょっと古いマシンでも動くはずだ。
試してみる価値はそれなりにあると思うぞ。
証明書は、つくればいいし。
オレオレ証明書で良いということは、
宅内であればサーバー経由でPS3のブラウザーでも見れそうですね。
PS3とかWiiで見られればなあ。
TVに何時も繋がってるので良いのにねえ。
どうでしょうか?
nopさん、コメントありがとうございます。
うろ覚え知識なので間違ってるかも知れませんが、オレオレ証明書でも公的証明書でも処理するためには、ルート証明書までも含めた証明書チェインを信頼しなければなりません。
一般的な公的証明書の場合、あらかじめクライアント(この場合PS3等)にルート証明書を信頼すべきものとしてインストールされていますので、そこからチェインされる証明書を信頼することができます。
オレオレの場合もオレオレルート証明書をインストールすれば信頼できますが、Windows以外でどうやるのか分からないのですが、PS3やWiiでは恐らく無理なのではないかと思います。
因みに、ARecX6が発行する証明書もオレオレで、しかもIPアドレスをホスト名にしますので、基本的にイントラ内のPCでしか利用できません。
記事内で図解したような構成で公的証明書を利用すれば、Flash対応ブラウザ搭載機なら視聴可能になると思います。
#でも公的証明書、高いですよ。
実は、ルート証明書がインストールされていなかったり証明書自体に誤りがあっても、信頼さえできれば(PC用ブラウザだとユーザに問い合わせる画面出ますよね?)SSL通信できます。
でも、ARecX6ではFlash自体がSSL通信をし、信頼をユーザに確認するインタフェースを提供しないため、ルート証明書のインストールが必須となっているわけです。
ご参考になりますでしょうか。