動画視聴認証設定

最終更新日: 2017.11.25

■概要

動画配信サーバーで配信する動画の視聴にユーザー名/パスワードによるアクセス制限をかける。また、動画視聴ページを経由せずに動画ファイルを直接再生できないよう、動画視聴ページ設置元サーバーからのみ動画の再生を許可するようにする。

※なお、本ページでは既にWebサーバーが稼動しているものとし、nginxの暗号化通信使用ポートを通常の443番ではなく8443番とすることにより既存のWebサーバーと並存できるようにしている。


■nginx暗号化通信有効化

[root@centos ~]# systemctl stop nginx ← nginx停止

[root@centos ~]# wget https://nginx.org/download/nginx-1.12.1.tar.gz ← nginxダウンロード
※最新版のURLはダウンロードページで確認すること

[root@centos ~]# tar zxvf nginx-1.12.1.tar.gz ← nginx展開

[root@centos ~]# cd nginx-1.12.1/ ← nginx展開先ディレクトリへ移動

[root@centos nginx-1.12.1]# git clone https://github.com/arut/nginx-rtmp-module.git ← nginx-rtmp-moduleダウンロード

[root@centos nginx-1.12.1]# ./configure --add-module=nginx-rtmp-module/ --with-http_ssl_module --with-debug && make && make install ← nginx+nginx-rtmp-moduleインストール

[root@centos nginx-1.12.1]# cd ← nginx展開先ディレクトリを抜ける

[root@centos ~]# rm -rf nginx-1.12.1 ← nginx展開先ディレクトリを削除

[root@centos ~]# rm -f nginx-1.12.1.tar.gz ← ダウンロードしたファイルを削除

[root@centos ~]# systemctl start nginx ← nginx起動

■nginx設定

(1)サーバー証明書取得
暗号化通信するためサーバー証明書を取得する。

Webサーバー間通信内容暗号化(Apache+mod_SSL+Certbot)
■Certbotクライアントインストール
■サーバー証明書取得
■サーバー証明書自動更新設定
を実施。

(2)nginx設定
[root@centos ~]# vi /usr/local/nginx/conf/nginx.conf ← nginx設定ファイル編集
    server {
        listen       8080;
        server_name  localhost;

        httpからhttpsへの自動リダイレクト設定追加(ここから)
        # httpをhttpsへリダイレクト
        if ($request_uri !~ /on_play) {
            return 301 https://$host:8443$request_uri;
        }
        httpからhttpsへの自動リダイレクト設定追加(ここまで)

・
・
・
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    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;
    #    }
    #}

    暗号化通信設定追加(ここから)
    動画視聴認証設定追加(ここから)
    動画ファイルの直接再生禁止設定追加(ここから)
    # HTTPS server
    #
    server {
        listen       8443 ssl; ← HTTPSポート変更
        server_name  localhost;

        ssl_certificate      /etc/letsencrypt/live/centossrv.jp/fullchain.pem; ← サーバー証明書と中間証明書
        ssl_certificate_key  /etc/letsencrypt/live/centossrv.jp/privkey.pem; ← 秘密鍵

        # faviconが存在しない旨のログを出力しないようにする
        location /favicon {
            empty_gif;
            access_log    off;
            log_not_found off;
        }

        # 動画視聴認証設定
        location / {
            satisfy any;
            allow 192.168.1.0/24; # 192.168.1.0/24からのみ認証なしでアクセスを許可
            deny all;
            auth_basic "STREAMING PAGE";
            auth_basic_user_file "/usr/local/nginx/passwd/.htpasswd";
        }

        # 動画ファイルの直接再生禁止設定
        location /vod/ {
            valid_referers server_names centossrv.jp;
            if ($invalid_referer) { return 403; }
        }
        location /live/ {
            valid_referers server_names centossrv.jp;
            if ($invalid_referer) { return 403; }
        }

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

        ssl_ciphers ECDH:!aNULL:!eNULL:!SSLv2:!SSLv3;
        ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    }
    暗号化通信設定追加(ここまで)
    動画視聴認証設定追加(ここまで)
    動画ファイルの直接再生禁止設定追加(ここまで)

[root@centos ~]# systemctl restart nginx ← nginx再起動

(3)ポートTCP8443番のOPEN
ルーター側の設定でポートTCP8443番をOPENする。
※ルーターの設定は各ルーターのマニュアルまたはメーカー別ルーターポート開放手順を参照

Portチェックテスト【外部からのPort開放確認】で「ホスト名(FQDN) または グローバルIPアドレス」にサーバー名(例:centossrv.jp)、「チェックポート番号」に8443と入力、「ご注意・制約事項」を確認チェックして「Portチェック実行」ボタンを押下し、
ホスト:centossrv.jp
ポート:8443
にアクセスできました
と表示されることを確認。

(4)認証用ユーザー名/パスワード登録
[root@centos ~]# mkdir /usr/local/nginx/passwd/ ← ユーザー名/パスワードファイル作成先ディレクトリ作成

[root@centos ~]# yum -y install httpd-tools ← httpd-toolsインストール

[root@centos ~]# htpasswd -b -c -m /usr/local/nginx/passwd/.htpasswd ユーザー名 パスワード ← ユーザー名/パスワード登録
Adding password for user xxxxxxxx

■オンデマンド配信動画視聴認証確認

□内部のPCブラウザからhttps://サーバー名:8443/vod.htmlへアクセスして認証なしで動画が視聴できること
□外部のPCブラウザからhttps://サーバー名:8443/vod.htmlへアクセスしてユーザー名/パスワード入力後、動画が視聴できること
□内部のiPhoneまたはiPadからhttps://サーバー名:8443/vod.htmlへアクセスして認証なしで動画が視聴できること
□外部のiPhoneまたはiPadからhttps://サーバー名:8443/vod.htmlへアクセスしてユーザー名/パスワード入力後、動画が視聴できること
VLC media playerを起動して「メディア」−「ネットワークストリームを開く」で「ネットワークURL」にhttps://RTMPサーバー名:8443/アプリケーション名/動画ファイル名.m3u8(例:https://centossrv.jp:8443/vod/test.m3u8)を入力して「再生」ボタン押下で動画が再生されないこと


■ライブ配信動画視聴認証確認

□内部のPCブラウザからhttps://サーバー名:8443/live.htmlへアクセスして認証なしでカメラ映像・音声が視聴できること
□外部のPCブラウザからhttps://サーバー名:8443/live.htmlへアクセスしてユーザー名/パスワード入力後、カメラ映像・音声が視聴できること
□内部のiPhoneまたはiPadからhttps://サーバー名:8443/live.htmlへアクセスして認証なしでカメラ映像・音声が視聴できること
□外部のiPhoneまたはiPadからhttps://サーバー名:8443/live.htmlへアクセスしてユーザー名/パスワード入力後、カメラ映像・音声が視聴できること
VLC media playerを起動して「メディア」−「ネットワークストリームを開く」で「ネットワークURL」にhttps://RTMPサーバー名:8443/アプリケーション名/ストリームキー.m3u8(例:https://centossrv.jp:8443/live/live.m3u8)を入力して「再生」ボタン押下で動画が再生されないこと



■関連コンテンツ




▲このページのトップへ戻る

Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします