I guess not many people use IIS Reverse Proxy and NGINX or Apache is the more popular option. Nonetheless, a reverse proxy is a reverse proxy.
It just requires a bit of translating to make it work.
From the get go if you use the default IIS Reverse Proxy settings, you'll see that the proxy is kind of weird with handling the communication.
You get the login page, but the login page thinks it's still in HTTP when your proxy has been configured to use SSL.
If you try to login, nothing happens and it stays stuck on the login page.
If you go and try to do a password reset, the page doesn't load correctly and does nothing.
This is because the communication between the Proxy and FireFly isn't going correctly, it's a mangled mess of HTTPS trying to be HTTP and vice versa simply put.
To fix this, you need to tell the reverse proxy rule to use a specific server variable
- In IIS select the root, go to URL Rewrite and click on View server variables on the right side menu
- Now click on Add on the right side menu
- Type in the name: HTTP_X_FORWARDED_PROTO and click on Ok
- Go back to the root again and click on URL Rewrite
- Create a new rule or edit an existing one. On the bottom you'll find Server Variable, expand it and click on Add
- Add the recently added HTTP_X_FORWARDED_PROTO from the dropdown and set the value to http. You can leave the Replace the existing value checked
- With this in place, test your connection to FireFly and see if you can login now