あお日記

理系研究者のブログです。勉強したことや本の感想などを中心に残して行くつもりです。

ローカルのNode-REDにhttpsアクセスする方法

タイトルの通り、ローカルでNode-REDのテストをしていた時
デフォルトだとhttpsアクセスができなかったのでその方法。
環境はMacです。

まず下準備としてlocalhosthttpsアクセスするための
鍵などの準備をします。下記URLを参考にさせて頂きました。
ここで設定した秘密鍵と証明書の配置場所はあとで使います。
Macに最初から入っているApacheでSSL通信する環境を整えた | karakaram-blog


続いて本題のNode-REDのインストール。方法はgitのREADMEにある通り。
npmというコマンドを使用します。
node-red/node-red · GitHub

インストール後、settings.jsという設定ファイルの内容を書き換えます。
手元の環境では以下のパスにありました。
/opt/local/lib/node_modules/node-red/settings.js

変更内容としてはコメントアウトされている以下の箇所をアンコメントします。

//var fs = require("fs");
//https: {
//    key: fs.readFileSync('privatekey.pem'),
//    cert: fs.readFileSync('certificate.pem')
//},

'privatekey.pem'と'certificate.pem'は上記の作業で
実際に配置した場所の絶対パスに置き換えます。
(参考URLのやり方に従うと拡張子はpemではなく
それぞれkey, crtとなっていますが問題ありません)

これでNode-REDを起動するとhttps://localhost:1880でアクセス可能になっているはず。

追記:
上記をすると逆にhttpではアクセスできなくなるので注意。
どちらでもアクセスできるようにすることもできるのかな?

余談:
Node-RED触っているとLost connection to server というエラーが出たので消し方を調べたところ
httpsにすれば良いよ、という記事がありhttpsアクセスできるようにしたのですが
エラーは消えませんでした。悲しい。