外出先からEPGStation@ラズパイ4へ安全にアクセス! リバースプロキシ(nginx)+無料ドメイン(Freenom)+無料SSL(Let’s Encrypt)+無料CDN(cloudflare)+ルータのポート開放(80,443)。これで家の外でもブラウザだけで、テレビの予約&視聴&ダウンロードが出来るようになったので、だいぶ使えるようになった!

外出先からEPGStation@ラズパイ4へ安全にアクセス! リバースプロキシ(nginx)+無料ドメイン(Freenom)+無料SSL(Let’s Encrypt)+無料CDN(cloudflare)+ルータのポート開放(80,443)。これで家の外でもブラウザだけで、テレビの予約&視聴&ダウンロードが出来るようになったので、だいぶ使えるようになった!

chan-toru(ブラウザからnasne予約可能)が7月で終了するので、ラズパイ4のメモリ8GBを買って、録画サーバにしてみた

EPGStationをネットからアクセスさせるだけなら、ルータのポート開放(8888)して、ラズパイのIPへポートフォワーディングすれば、http://家のIPアドレス:8888 でOK
でも、これだと誰でもアクセス出来ちゃう!
EPGStationの標準機能でBasic認証できるけど、SSL無しだとパケット丸見えなのでセキュリティ的に問題ある。

1, nginxインストール + ルータのポート開放(80)
EPGStation自体にもWebサーバ機能はあるけど、リバースプロキシとしてnginx経由の方が楽。

これで家のIPでブラウザからアクセス出来ればWebサーバの設置完了。

2, 無料ドメイン(Freenom)で、ドメインのURLアクセス出来るようにする。
https://www.freenom.com/ja/index.html
適当なドメインを取得して、12ヶ月保持にしておいて、家のIPアドレスをFreenomのDNSに登録。TTLは300(5分)くらいにしておく。
これで、http://自分のドメイン名 で家のラズパイにアクセス出来る。

3, 無料SSL(Let’s Encrypt) + ルータのポート開放(443)

Raspberry Pi(Raspbian Stretch)にNginx+Let’s EncryptでSSLウェブサーバ構築

ルータのポート開放(443)とnginx再起動すると、https://自分のドメイン名 で家のラズパイのnginxにアクセス出来る。

無料SSL(Let’s Encrypt) は、3ヶ月で有効期限が切れるので、certbotが12時間毎に確認&更新作業をしてくれるんだけど、nginxは再起動しないと新しいSSL証明書を読み込んでくれないので、ついでに再起動処理を入れておく

4, nginx経由でEPGStationにアクセス(リバースプロキシの設定)

これで、https://自分のドメイン名 で家のラズパイのEPGStationにアクセス出来る。

5, SSL上でEPGStationのBasic認証を設定する

6, 家は固定IPじゃないので、無料CDN(cloudflare)で、すぐにIPアドレスの変更に対応する。SSHは直IPじゃない駄目になる!
https://www.cloudflare.com/ja-jp/

アカウントを作って、自分のドメイン名を登録する(無料プランで!)
SSL/TLS 暗号化モード: FULL
常に HTTPS を使用: ON
Auto Minify: NONE
Brotli: OFF

freenomの設定画面で、freenomのDNSから、cloudflareのDNSへ変更する。
これで、IP変更が秒で反映される!

cloudflareのAPIを使って、IP変更されたら自動的に更新しようと思ったら…。
https://qiita.com/maron2000/items/834aa44d380f0f1312ce

自宅IPが変わったらAPI使って自動更新しようとしたら、無料ドメインは駄目らしい。
まあ、色々と悪用されちゃったみたいだから、しょうがないね。
漫画村で一躍有面になったイメージ。株価はきれいな右肩上がりだから買ってみるかな。

しょうがない、手動でIPアドレス更新しよう。まあルータやモデムを再起動しなければ固定IPだから(苦笑)

ラズパイのグローバルIPを取得するのに、cronで1時間毎にチェックして、dropboxアップロードするシェルスクリプトを組んでみた

これで家の外でもブラウザだけで、テレビの予約&視聴&ダウンロードが出来るようになったので、だいぶ使えるようになった!