motioneyeをnginxを通してhttpsでアクセスする

テスト環境

  • Raspberry Pi OS Lite (32-bit)
  • Debian Bullseys
motioneye

元ネタ↓ありがとうございます。

localhostの秘密鍵と自己署名証明書を生成する最も簡単な方法

こちらの記述によると

CA の助けを借りなくても、誰でも自分の証明書を作ることができます。 唯一の違いは、自分で作った証明書は、他の誰からも信頼されないということです。 それでも、ローカルの開発の場合は十分です。

他の誰からも信頼されない

気に入った!しかも、開発には十分!

  • ワンライナーじゃし

openssl req -x509 -out localhost.crt -keyout localhost.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj ‘/CN=localhost’ -extensions EXT -config <( \
   printf “[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth”)

Generating a RSA private key
………………..+++++
…………………………………………………………………………………………+++++
writing new private key to ‘localhost.key’

できた!

  • localhost.crt (証明書ファイル)
  • localhost.key (秘密鍵ファイル)

ファイル名を変えたい場合、↑ワンライナーの赤文字の部分を変える。

  • 証明書の内容を確認
    • sudo openssl x509 -text -noout -in /証明書ファイル
  • 秘密鍵の内容を確認
    • sudo openssl rsa -text -noout -in /秘密鍵ファイル

motioneyeをバーチャルホストとして、nginxからhttpsでアクセスする設定

(1)インストールがまだならこちら。

  • sudo apt install nginx -y

(2)localhost.crtとlocalhost.keyを、nginxのsslフォルダに移動する。

  • sudo mkdir /etc/nginx/ssl
  • sudo mv localhost.* /etc/nginx/ssl

(2)sites-availableにバーチャルホストの定義ファイル作成

  • ホスト名: ○○○○○(kame1みたいな)
  • URLパス: △△△△(cam1みたいな)
  • sudo nano /etc/nginx/sites-available/○○○○○

server {

    listen 443 ssl;

    server_name ○○○○○;

    ssl_certificate /etc/nginx/ssl/localhost.crt;
    ssl_certificate_key /etc/nginx/ssl/localhost.key;

    location /△△△△/ {
        proxy_pass http://IPアドレス:8765/;
        proxy_read_timeout 120s;
        access_log off;
    }

}

(3)sites-enabledにLinkをはる。

  • sudo ln -s /etc/nginx/sites-available/○○○○○ /etc/nginx/sites-enabled/○○○○○

フォルダの役割

  • sites-available(定義ファイルの実体入れ)
  • sites-enabled(実体へのリンクがあればバーチャルホストが起動する。)

(4)nginxデーモン再起動

  • sudo service nginx restart

(5)メモ

  • アクセス
    • https://○○○○○/△△△△みたいな。
    • https://kame1/cam1
  • 警告
これは無視してOK!
  • http:でアクセスするバーチャルホストの定義

ちなみに、SSLなしではこれ。↓

server {
    listen 80;
    server_name ○○○○○;
    location /cam1/ {
        proxy_pass http://IPアドレス:8765/;
        proxy_read_timeout 120s;
        access_log off;
    }
}

  • 設定のテスト
    • sudo nginx  -t
  • logファイルの場所と確認
    • /var/log/nginx/error.log
    • journalctl -xe

やりたかったこと

試行錯誤の途中で、Dropbox developersのApp consoleにあるOAuth2 redirect URLs(https必須)に、motioneyeのURLを設定してみたかった。

以上、参考まで


よろしければチャンネル登録よろしくお願い申し上げます!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です