1

node-redをフロントエンドとして使用して、構築中の REST API とやり取りしようとしています。私の API は https を使用していますが、私のローカル サーバーでは証明書が完全に設定されておらず、「h​​ttp 要求」ノードを使用しようとするとエラーが発生します。

 UNABLE_TO_VERIFY_LEAF_SIGNATURE

node-red をより緩く設定し、SSL プロトコル エラーを許可して http 要求の処理を続行する方法はありますか? デフォルトのものよりも厳密でない「http request」ノードの独自のバージョンを作成した人はいますか?

(Google Chome ブラウザでは緑色の南京錠が表示されているため、SSL はほぼ正しく、node-red は非常にうるさいです)


node-red を実行するには、docker を使用します。

docker run -dp 1880:1880 -v ~/.node-red:/root/.node-red --name node-red cpswan/node-red

これは私のnode-redプロジェクトのソースコードです:

[{"id":"e246fcb9.1db9","type":"inject","name":"Trigger user/me","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":200,"y":140,"z":"e7bac913.184538","wires":[["f9d78108.06288"]]},{"id":"96b8b92c.694748","type":"http request","name":"user/me","method":"GET","ret":"obj","url":"https://local.supertasker.com/api/user/me","x":711,"y":141,"z":"e7bac913.184538","wires":[["5150419b.aeafc"]]},{"id":"5150419b.aeafc","type":"debug","name":"","active":true,"console":"false","complete":"false","x":906,"y":140,"z":"e7bac913.184538","wires":[]},{"id":"f9d78108.06288","type":"function","name":"Add 'Accept:application/json' header","func":"\nmsg.headers = {\n    'Accept':'application/json'\n};\n\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"valid":true,"x":464,"y":140,"z":"e7bac913.184538","wires":[["96b8b92c.694748"]]}]
4

4 に答える 4

5

現在、node-red はこれを直接行う方法を公開していませんが、NODE_TLS_REJECT_UNAUTHORIZED環境変数を設定して node.js レベルで無効にすることができます。

例えば:

NODE_TLS_REJECT_UNAUTHORIZED=0 node red.js
于 2015-05-01T09:05:23.650 に答える
0

誰にも役立つ場合は、@knollearyが明らかにしたENV変数を使用して、 HTTPSエラーなしでDocker を使用してnode-redを試す方法を次に示します( ):NODE_TLS_REJECT_UNAUTHORIZED=0

Dockerfileこれを内部に作成します:

FROM node:0.10
RUN npm install -g node-red
EXPOSE 1880
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
CMD ["/usr/local/bin/node-red"]

それを構築します。

docker build -t="yourname/node-red" .

それを実行します:

docker run -dp 1880:1880 -v ~/.node-red:/root/.node-red --name node-red yourname/node-red

ブラウズ: http://127.0.0.1:1880/

ホストで実行されているサービスにアクセスするために node-red アプリが必要な場合は/etc/hosts、docker ゲートウェイ IP を参照するサービスの名前を node-red コンテナーに追加できます。

docker exec node-red sh -c "echo '172.17.42.1\tmy.local.service.com\n' >> /etc/hosts"

この後、node-red の「http request」ノードをmy.local.service.comurl で使用できます。

于 2015-05-01T09:40:38.197 に答える