ARecX6からお手軽に TSファイルを抜くことができるようになって利便性が上がり、俄然やる気になったのでもう1台購入しました。
ARecX6は6チューナなのですが、関西では地上波は8チャンネルあるため、これまで2チャンネル犠牲になってきたのですが、これで全局カバーすることができます。
そこで2号機導入にあたり、何点か引っかかった点があるので、ネット上の古文書や個人的に調べた結果等から、備忘として残しておきます。
もしかしたら他の方にも役に立つかもしれませんが、試される場合は自己責任で。動かなくなっても知りません。
「1⃣設定の初期化」 はともかく、「2⃣サーバ証明書」と「3⃣HTTPSが動いてない...」については、言ってることが分からないとか、自分で何とかできない人はやるべきではありません。高確率で不動機化する可能性があります。
実際私もなりかけました(3⃣は多分2⃣の結果だと思います)。
1⃣設定の初期化
ARecX6はHTTP/HTTPSサーバとして動き、動画データはHTTPSで流れてきます。
そのため、SSL用サーバ証明書(オレオレ)が作成され、視聴する側のPCにそれを登録する必要があります。
この証明書はIPアドレスで生成されるため、IPアドレスをDHCPで動的に割り振るのではなく固定にしておく必要があります。
新品購入時はDHCPになっていて、とりあえずIPを取らせてからユーティリティでスキャンして設定をしていくわけですが、今回は中古で購入したため、前のオーナーさんが指定していたIPアドレスが分からない(多分セグメントもウチとは違う)ため、スキャンもできず、設定画面も開けません。
そこで設定の初期化が必要でした。
初期化は前面パネルの [REC]と[POWER]の2つのボタンを長押し(10秒)でできます。
これでDHCPが有効になり、家のルータからアドレスが振られてアクセスできるようになりました。
2⃣サーバ証明書
通常はARecX6に付属のユーティリティ ARecX6Launcher を使って証明書を作成してPCに登録するのですが、これがうまくいきません。「証明書の日付がおかしいので登録できない」的なエラーとなります。
1号機は全く問題なかったのですが、ネット上の情報を調べてみると、どうも2038年問題を抱えているらしく、2年ほど前から、新たに証明書を作成しようとすると、有効期限が2038年1月19日を超えてしまい、有効期限が1900年代にタイムスリップした証明書が作成されてしまうとのこと。
ARecX6Launcher を使わず、ブラウザでHTTPSアクセスして証明書をダウンロードし、日付がおかしなままの証明書を登録することもできますが、それだと、IEさんはなんとか許してくれるもののChromeさんが許してくれませんでした。
そこで取った方法が以下。
①サーバ証明書を生成してくれるCGIを書き換える
ネット上の古文書の教えに従い、root権限取得&ssh有効化。
/opt/vista/tuner/cgi/cert/exec.cgi が証明書生成の CGI(perl)なので、これを書き換え。
具体的には、"-days 6999" となっている部分が2か所ありますが、これが有効日数です。
デフォルトで 6999日となっていますので、今この日数で実行すると2038年を超えてしまいますので、これを"適切な"値に変更します。
(例えば1年でよければ365、10年なら3650とか。)
②サーバ証明書の再作成と登録
既に証明書が作成されている場合は一旦削除。
http://???.???.???.???/cgi/get.cgi?type=cert_clear
(環境に合わせてIPアドレスを指定)
ARecX6Launcher を使って登録。
日数が適切であれば、今度は日付が2038/1/17を超えないのでちゃんと登録されます。
ただしこの方法は あと18年しか使えません(笑)。
有効日数を適当に振って、2036/6/29まで有効な証明書が登録されました。
今回はこれでOKとしましたが、試行錯誤の過程では以下のコマンドも使用しましたので備忘のため上げておきます。
・証明書削除
http://???.???.???.???/cgi/get.cgi?type=cert_clear
・証明書作成
http://???.???.???.???/cgi/cert/exec.cgi
・証明書ダウンロード
http://???.???.???.???/cert/cert.der
3⃣HTTPSが動いてない...
サーバ証明書を登録したにも関わらず、IE,Chromeとも相変わらず動画再生ができません。
再生しようとすると、「サーバに接続できませんでした」と。
再び先人の知恵を得ようとするも、事例としては証明書を登録すればいけるようなケースばかりでした。
試しに TELNETでポート443を叩いてみても、まったく"感"がありません。ポート443自体が開かれていないようです。
1号機はもちろん開かれています。
証明書の件でいろいろやったので、もしかしたらサーバ側のSSL設定が知らぬ間に崩れたのかと思い、Apache周りを見てはみるものの、mod_ssl周りの設定が全くありませんでした。
さらに調べていると、どうも、SSLについては、stunnelを使っているようで、その設定( /etc/stunnel/stunnel.conf )を確認すると、
/opt/vista/etc/cert に server.crt と server.key が必要なことが分かりました。
これらのファイルは 1号機を確認すると確かにありましたが、2号機にはありませんでした。
試しに証明書が作成されたときに一緒に出来ている /opt/vista/tuner/cgi/cert/CA の server.crt と server.key をここにコピーして再起動すると... 🎉🎉🎉!
無事、ポート443が開かれてHTTPが有効になり、動画再生もできるようになりました。
現象の確認のためもう一度、証明書の作成からやってみるも、やっぱり /opt/vista/etc/cert にはコピーされていませんでした...
/opt/vista/etc/cert は所有者が root になってて、root以外は書き込み禁止だったので、証明書作成のために修正した cgi からアクセスできなくなっちゃったのでしょうか...
修正した /opt/vista/tuner/cgi/cert/exec.cgi にも、/opt/vista/etc/cert にこれらをコピーしようとしているところがありますが、権限か何かの関係で多分うまく動いていないのでしょう。
(手抜きで編集したので、このファイルの所有者がrootじゃなくなってる)
まあでも、とりあえず私の場合はIPアドレスを変更しなければ、これであと16年以上使えるのでもういいのですが、同様の事例に悩む方がいらっしゃいましたら、ヒントになれば幸いです。
くれぐれも自己責任で。
※いろいろ仕組みが分かってきて、後から思ったこと。
CGIの書き換えとかまでしなくても、外部でOpenSSL使ってそのIPアドレスの証明書(100年くらい有効なのとか)作って、ARecX6の所定の場所にコピー&動画参照PCに登録でよかったかも。(未検証)
まあ、いろいろ試して分かってきたことなので結果論なのだけど。
最近のコメント