テスト環境
- Raspberry Pi OS Lite (32-bit)
- Debian Bullseys
元ネタ↓ありがとうございます。
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
- 警告
- 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を設定してみたかった。
以上、参考まで