1. 証明書の保存用ディレクトリを作成
mkdir -p ~/certs
cd ~/certs
2. OpenSSLで証明書を生成(有効期限1年)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privkey.pem -out cert.pem -subj "/C=JP/ST=Osaka/L=Osaka/O=MyCompany/OU=Dev/CN=localhost"
CN=
はアクセス時のホスト名と一致させるのが理想(例:raspberrypi.local
やIPアドレスでも可)
この例ではlocalhost
にしています
3. Node-RED の設定ファイルを編集
sudo nano ~/.node-red/settings.js
以下のように編集してください(コメントアウトされている箇所を有効にする):
// HTTPS設定
https: {
key: require("fs").readFileSync('/home/pi/certs/privkey.pem'),
cert: require("fs").readFileSync('/home/pi/certs/cert.pem')
},
pi
以外のユーザーで動かしている場合はパスを調整してください
4. Node-RED を再起動
node-red-stop
node-red-start
5. ブラウザからアクセス
https://<ラズパイのIPアドレス>:1880
警告について
- 最初のアクセス時に「この接続ではプライバシーが保護されません」などの警告が表示されますが、
- 「詳細設定」→「このサイトにアクセスする(安全ではない)」を選択すれば表示されます。
- これは自己署名証明書なので当然です(社内用途では問題ありません)
補足(オプション)
自動更新が不要な理由
- 自己署名証明書は1年有効です(365日)
- 再発行も同じ手順で簡単に可能です
ブラウザの警告をなくす方法(社内用PC限定)
cert.pem
をクライアントPCにコピー- Windowsなら「信頼されたルート証明機関」としてインポートすれば警告が出なくなります
完了
これで HTTPS + Node-RED が社内ネットワークで安全に利用できます。
さらなる強化(パスワード認証、Basic認証など)をご希望であれば、お気軽にご相談ください。
コメント