ただおの不定期日記

主に映画の感想など。たまに違う話題も書くかもしれません。

ラジオ局のHPサーバーをアップデートした

2025-02-19 13:16:31 | PC

いつもお世話になっているラジオ局のホームページが更新できなくなったとのことで、協力を頼まれた。SSL化も含め備忘として。

以前にもスタジオの動画のライブストリーミングでお手伝いしたのでやってみた。

局のPCにDreamWeaverがインストールされており、そこで修正したデータをFTPでアップロードするのだが、どうやらパスワードが消えてしまい、アップできなくなった模様。サーバーへログインもできない。ついでながら、SSL化もされてなかったので対応することに。

動画のライブストリーミングにはさくらサーバーを使い、 NginX で対応していたが、これもSSL化はしていなかった。

とりあえず別のサーバーを立ててApache でホームページをSSL化してみたが、そのホームページから非SSLのライブストリーミングは参照できない。

考えた結果、同じサーバーにApache2とNginXを入れて、ホームページ用とストリーミング用にそれぞれ稼働させてみることに。サーバー同じなら証明書が共用できるのでは?という目論見。SSL化は無料の LetsEncrypt を使用する。 

ストリーミングの際は CentOS を使ったが、今は Rocky になっていってるということでサーバーもまず RockyLinux9で初期化。Swap 領域をスタートアップスクリプトで確保(というか最初Swapなしでやっていたら途中でインストールできなくなったw)。

WEB、FTPのほかにストリーミングのアップロードと配信用に ポートは 1935,8080,8443を開けておく。

アプリの管理も dnf とかに変わっているw vsftpd, Apache, NginX, rtmp をインストール。

https://notebook.suzumeno.com/rockylinux_vsftpd_install/

https://qiita.com/T_Tsan/items/9c456c4ce503b5339b11

https://centossrv.com/nginx-nginx-rtmp-module.shtml

NginXは1.26.2。途中、wget, tar, git, gcc も。MakeするのにCコンパイラないとねw

NginXについては rtmp でのアップロードと暗号化するため以下でインストール

 ./configure --add-module=nginx-rtmp-module/ --with-http_ssl_module --with-http_v2_module --with-http_realip_module

さらに配信用に ffmpeg も。

https://qiita.com/24Century/items/33f92bfc960d5126f916

そしてSSL化

LET’S ENCRYPTを標準外のポートでDNSチャレンジにて取得する

https://rp-lifework.com/?page_id=783

今回はバリュードメインを使用していたが、TXTレコードの書き方でちょっと手間取った。バリュードメインのDNS設定のところの説明をみてやるとうまくいかず。

結局、

txt _acme-challenge.(MyDomain) (KeyValue)

という単純な書き方でOKだった。

これで /etc/letsencrypt/live/(MyDomain) の下に証明書(へのシンボリックリンク)が生成される。

NginXは /usr/local/nginx/conf/nginx.conf に以下を追加

    server {

        listen       8443 ssl;

        server_name  localhost;

 

        ssl_certificate      /etc/letsencrypt/live/(MyDomain)/cert.pem;

        ssl_certificate_key  /etc/letsencrypt/live/(MyDomain)/privkey.pem;

 

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

 

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

 

        location / {

            root   html;

            index  index.html index.htm;

        }

    }

Apache の SSL 設定は以下を参考

https://korodes.com/rockyl9-1_08/

追加モジュールを外していたため、 /etc/httpd/conf.modules.d/00-ssl.conf に

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so を追加

またhttp: でのアクセスを https: にリダイレクトするため、00-base.conf にて rewrite モジュールもロードするよう設定

これでホームページとその中で参照している動画ライブストリーミングも SSL  アクセス可能に。

ちゃんと証明書は共用できた。うまくやればNginXだけでホームページもストリーミングもいけるのかもしれないけど、まあ動いているので当面はこれでいこう。

そうそう、証明書の更新設定もやっておかないとね。