Node-redのWebSocketをSSL化

背景

WordPress(http:)をSSL化したが、その中で使用しているWebSocket(ws:)が使用できなくなってしまった。

問題点

https:でWebSocketを使うためにはwss:にする必要がある。

wss:にする方法(サーバー側)

条件:さくらインターネットのスクリプトでNode-redをCentOS7にインストール後、Wordpressを手動でインストール、その後、letsencriptにてhttps化を行った。

Node-redのsettings.jsのありかを調べる

$ sudo pm2 show node-red

$ sudo less /root/.pm2/logs/node-red-out.log

settings.jsを書き換える

ここからはSuper user (root)に変更する。

$ su

# cd /root

# vi settings.js

先頭コメント’//’を削除

先頭のコメント削除。および、鍵のパスを指定する。

保存しスーパーユーザーを抜ける。

# exit

Node-redを再起動させる

$ sudo pm2 stop node-red

$ sudo pm2 start node-red

以上でサーバー側のNode-red (WebSoket)のSSL化が行えた。ただし、今後はNode-redにアクセスするときもhttps://xxxxxx:1880/のようにhttpsでしかアクセスできなくなる。

wss:にする方法(Java Script側)

ws://xxxxx:1880/ws/test -> wss:// xxxxx:1880/ws/test

wsからwssにすればよい。