古いパソコンを再利用して見守りカメラを作る。(その4)

前回まででブラウザ経由でカメラ映像を確認することができるようになったかと思いますが、これだと通信は暗号化されていないため、ちょっとセキュリティ的にどうかなーって状態なので、Apache経由で暗号化くらいはしてみます。

前回の最後に、Let’s Encriptを使うとかBasic認証させるとか言ってたんですが、自宅のテスト用のポケットwifiが実はグローバルIP取れなかったりとかでいろいろ詰まってしまって実現できなかったので、ひとまず自己証明で暗号化する部分だけ紹介したいと思います。
Let’s EncriptとかBasic認証なんかは割とやってる人多いので、適当にググってもらえれば参考になりそうなのは多いので問題ないかと。

では、実際の手順です。

1.Apacheインストール

なんてことはないのですが一応紹介。
インストール:yum install httpd
自動起動設定:systemctl enable httpd
サービス起動:systemctl start httpd

2.自己証明の作成

apache設定ファイル配置ディレクトリに移動:cd /etc/httpd/conf
秘密鍵の作成:openssl genrsa > server.key
CSRファイルの作成:openssl req -new -key server.key > server.csr
→いろいろ入力を求められるけど自己証明なので全部空でEnter
証明書の作成:openssl x509 -req -signkey server.key < server.csr > server.crt

3.SSLモジュールのインストールと設定

インストール:yum install mod_ssl
設定:vi /etc/httpd/conf.d/ssl.conf
→以下のように修正

# SSLCertificateFile /etc/pki/tls/certs/localhost.crt → コメントアウト
SSLCertificateFile /etc/httpd/conf/server.crt → 追記
# SSLCertificateKeyFile /etc/pki/tls/private/localhost.key → コメントアウト
SSLCertificateKeyFile /etc/httpd/conf/server.key → 追記

4.ApacheにWebカメラのプロキシ設定追記

コマンド:vi /etc/httpd/conf/httpd.com
→設定ファイルの最後に以下を追記

# httpsのみのアクセスだけ許可
<Location /motion>
SSLRequireSSL
</Lcation>

# /motion/でアクセスされたらWebカメラに転送
ProxyPass /motion/ http://127.0.0.1:8081
ProxyPassReverse /motion/ http://127.0.0.1:8081

5.Firewallでポート開放する。

コマンド:firewall-cmd –zone=public –add-rich-rule=’rule family=ipv4 source address=[アクセス許可するIPアドレス]/32 port port=443 protocol=”tcp” accept’ –permanent

6.設定の変更を適用

Apacheの適用:systemctl restart httpd
firewallの適用:systemctl

ここまで設定出来たら「https://WebカメラサーバのIP/motion/」でアクセスすれば、自己証明なので一回エラー画面が表示されるとは思いますが、表示できると思います。

でApache公開されているのでBasic認証もかけられるはず!

ひとまず今日はここまでで
では