Basic http end-point on RIO

I imported the basic example flow given here:

https://cookbook.nodered.org/http/create-an-http-endpoint

I modified the flow to use the the URL http://rio-26/hello for the HTTP IN node

I use curl http://rio-26/hello at my laptop here to see the response:

$ curl http://rio-26/hello

301 Moved Permanently

301 Moved Permanently


nginx/1.15.2

So I am getting a response of sorts. I am guessing the 301 is the redirection to port 443 and thus no real reponse.

What needs to change to succeed with basic GET and response things. I anticipate certificates and firwalls and such.

Regards,

Jerry

You are going to hit brick wall after brick wall using the stock HTTP IN node because the port it listens on can not be changed.
This thread talks about this here:

(Stop reading when it gets into the certificate stuff - or not).

So it all depends on what your end goal is here.
The TCP In node might be the better better tool as you can change it to listen to a port above 1024 and then open the groov firewall to match the port number and you will be up and running to some extent.

Well I was exploring it because we have a third party system here that uses a web API so I wanted to see if it would be “easy” or “hard”. I already read the thread you referenced there. (The certificate stuff I am beginning to get and I am using OpenSSL on Linux to generate things). So yes, for security reasons it is a brick wall.

Its not difficult to use the TCP in nodes. From there it is not a huge stretch to deal with simple GET and PUT things. I have done it on PAC control strategies.

It should be on the easy side.
Just the example you started with is not easy on EPIC because of how we wrap Node-RED to be secure and require authentication to use it. (Both are a good thing).

If you are just needing an API, then you don’t even need an input of any kind, so no firewall rule changes needed.
You make an outbound request to the API, it returns back the same out connection and it is done.
The one thing you might need to do is get the cert from the API server and install it via groov Manage.

The solution is in fact very very easy to use the HTTP IN node. (The clue is right there in the dialog ‘relative to’)

In the HTTP IN Node with the example, configure like this:

Then in web browser simply do this:

https://192.168.x.x/node-red/hello

Use IP address of your own EPIC device. If you are not logged in you will be given a page that prompts you to login. If and when you login you are presented with the repsonse:

One can automate the login from the device or computer wanting to recieve the HTTP response.

2 Likes