Make sure you use your full domain name
ec2-3-238-27-220.compute-1.amazonaws.com
David shorten it in his code

On November 8, 2022 5:57:26 p.m. James McMahon <[email protected]> wrote:
Thank you, David. I’ve made that change, adding the proxy host specification on the docker command line. I continue to get the same error message. Is it possible I need to indicate my key on the docker command line too?

Related, how can one access nifi.properties and the usual nifi config files, as well as the family of nifi-app.log files and bootstrap.conf, when nifi is running inside a docker container?

Thanks again for sticking with this. I feel like we’re getting closer.
Jim

On Tue, Nov 8, 2022 at 7:31 PM David Handermann <[email protected]> wrote:
Hi Jim,

Good adjustment on the security group inbound rules.

The error page is the result of NiFi receiving an unexpected HTTP Host header, not matching one of the expected values.

For this to work, it is possible to pass the external DNS name as the value of the NIFI_WEB_PROXY_HOST environment variable. This can be specified in the docker run command as follows:

docker run --name nifi -p 8443:8443 -e NIFI_WEB_PROXY_HOST=ec2...amazonaws.com -d apache/nifi:latest

That will allow NiFi to accept the Host header from the browser, and then present the login screen.

Regards,
David Handermann

On Tue, Nov 8, 2022 at 6:06 PM James McMahon <[email protected]> wrote:
Hi David. This is very helpful, thank you. I feel like I am close, but I get an error. My Inbound Rules for my security group now include:
8443 TCP (MyIP)/32
443 TCP (MyIP)/32
22 TCP (MyIP)/32

In my browser - I tried both Edge and Chrome - I use this
URL:
https://ec2-3-238-27-230.compute-1.amazonaws.com:8443
I have also tried with /nifi at the tail end.

I get this error:
System Error
The request contained an invalid host header [ec2-3-238-27-220.compute-1.amazonaws.com:8443] in the request [/]. Check for request manipulation or third-party intercept.
Valid host headers are [empty] or:
127.0.0.1
127.0.0.1:8443
localhost
localhost:8443
[::1]
[::1]:8443
7f661ae687d7
7f661ae687d7:8443
172.17.0.2
172.17.0.2:8443


Does this mean I have formed the URL incorrectly?


I also see that I had to add an exception to permit https. When I created the instance, I created my own pem key pair. It is not signed by any CA. For a self-signed key pair like this, do I need to install a key in my browser security store to avoid adding that exception?


Thank you for helping me get that much closer.
Jim

On Tue, Nov 8, 2022 at 5:13 PM David Handermann <[email protected]> wrote:
Hi Jim,

Thanks for the reply and additional background.

The instructions are dated March 2021, which is prior to the release of NiFi 1.14.0. In particular, the run command is no longer accurate with the default NiFi container image.

The current Docker Hub instructions [1] show the basic command needed

docker run --name nifi -p 8443:8443 -d apache/nifi:latest

In addition, any references to port 8080 in the AWS Security Group rules should be changed to 8443. The security group rules for port 80 and 18080 should be removed.

The instructions that allow plain HTTP access to NiFi on port 8080 should NEVER be followed, as this exposes unfiltered and unauthenticated access.

Following those changes, it should be possible to access the NiFi UI using the AWS URL:

https://ec2...amazonaws.com:8443

The default installation will generate a username and password, which can be found in the container logs:

docker logs nifi | grep Generated

Regards,
David Handermann

[1] https://hub.docker.com/r/apache/nifi

On Tue, Nov 8, 2022 at 4:00 PM James McMahon <[email protected]> wrote:
Hi and thank you, David and Dmitry. In my case I was following this example,

https://joeygoksu.com/software/apache-nifi-on-aws/

which results in NiFi installed within a container. So to answer one of your questions, I don’t yet know how or where to find nifi.properties in the container framework. I don’t seem to have the usual /opt/nifi/….. directories on my ec2 instance. Any idea where I need to look for that?

These ports are open by my security group Inbound Rules: 22 to MyIP, 80, 8080, and 18080 (per the link) to 0.0.0.0/0, 443 to MyIP.

I am able to Putty into my instance as ec2-user with my ppk file, which I created using putty tools from the original pem key pair. When I do putty in, under /opt I find three subdirectories: aws, containerd, and rh. Nothing nifi under any of the three that I can see so far.

I start my docker instance with this command:
docker run —name nifi -p 18080:8080 -d apache/nifi:latest

I can do a ps -ef and see running nifi processes. But I don’t yet know how to get to the nifi logs or properties file.

You mentioned using using localhost to get to the canvas UI. This confuses me. Nifi is running on my EC2 instance - a linux host without a browser. I’m in a browser on my laptop. How would localhost in my browser get me to my EC2 instance running nifi?

This is the URL I’m using in my browser:
http://ec2-3-238-27-220.compute-1.amazonaws.com
(that url changes with each Stop/Start of my instance. I’ve yet to investigate how to get AWS to stop changing that IP, but I know it can be done).

The browser replies with: ec2…….amazonaws refused to connect.

I can ping my laptop IP address from the putty terminal where I am logged in to my instance. I cannot ping the Public DNS of my instance from Powershell on my laptop. Again, that Public DNS is ec2-3-238-27-220.compute-1.amazonaws.com

Any help is much appreciated.
Jim



On Tue, Nov 8, 2022 at 3:03 PM David Handermann <[email protected]> wrote:
Hi Jim,

NiFi 1.14.0 and following default to HTTPS on port 8443, listening on the localhost address. The nifi.web.https.host can be changed to blank in order to listen on all interfaces, but the default HTTPS setting with authenticated required should be retained.

Can you provide the version of NiFi and some additional details on the nifi.web values from nifi.properties?

Regards,
David Handermann

On Tue, Nov 8, 2022 at 1:54 PM James McMahon <[email protected]> wrote:
Has anyone successfully configured NiFi on AWS, and accessed it from a browser on a Windows desktop? I’ve tried following a few links to do this. I’ve verified that my instance security group allows access to 8080 via its inbound rules. I’ve putty’ed into the instance via ssh port 22 to verify that there are no firewall restrictions. But still I get a message to the effect that the server rejected the connection request. Can anyone recommend a link that describes a success path for this?
Thanks in advance for your help.

Jim

Reply via email to