I may be missing something in the documentation, but I cannot figure out how to redirect requests over port 80 to automatically redirect to my https-configured web adaptor. I can currently get to https://domain/webadaptor/rest, but do not get redirected to that url when going to http://domain/webadaptor/rest. I've tried setting up a rule in IIS with URL Rewrite, but no dice. Any advice on how to set this up? I am probably missing something obvious here because it seems like almost any organization would want this to happen. Users can't be expected to type in http:// everytime.
Thank in advance
Mike
Solved! Go to Solution.
This has nothing to do with the web adaptor but everything with IIS. Also, you can still use Web adaptors when using NLB appliances.
Either you need an external appliance to redirect (e.g. F5, KEMP, Citrix etc)
or you install and configure URL Rewrite.
I can only suspect that the url rewrite rule applied to the IIS application (in this case, the Web adaptor) was incorrectly configured OR my other suspiciton is that you are unaware that installing the web adaptor,choosing 443 will change some IIS settings which the URL redirect may not work under.
Lets make sure your redirect (using URL Rewrite) is setup first..
using IIS 8.5
type in the http link to the web adaptor.. get a 403.
go to IIS
you will have already installed the urlrewrite either on its own or using the web platform installer.
e.g.
Here you can see 3.21 (JSAPI) and the arcgis web adaptor
You can create the new inbound rule to the site so that all child applications will get the redirect.
Add rules
Add a blank inbound rule
Name it, Redirects to HTTPS
pattern: (.*)
Add a condition
Condition input is {HTTPS}
Pattern: ^OFF$
Press OK
Go to ACTION pulldown panel
Action Type: Redirect
Redirect URL: https://{HTTP_HOST}/{R:1}
Redirect Type: See Other (303)
Click on APPLY
Verify the changes were successful
IIS will now look like so:
Lets refresh our default page.
yes... redirects.
try a JSAPI under 3.21
yes.. redirects
Try the web adaptor...
In your case, i 'suspect' that it will not work...
go to the SSL settings for the web adaptor:
If Require SSL is checked... uncheck it.
Make sure to apply and verify successful
*** what i have found is that when installing the web adaptor, choosing port 443 auto checks a setting interfering with the URL Redirect.
Now try your web adaptor link... (not even http just machine name...(or http)
and you should now get redirected to HTTPS
Of course, next step is to get a valid cert....
Have you taken a look at the Disable http access to ArcGIS Server section of the doc?
Yes. That was the first thing I did in my process. I've configured ArcGIS Server many times before, but I typically use an AWS load balancer instead of the web adaptor. I can successfully connect to https://<my domain>/arcgis/rest, but when going to http://<my domain>/arcgis/rest, I see the error below:
Maybe I have something configured incorrectly in IIS? I have bindings for 80 and 443, with 443 using an SSL cert for <my domain>.
This has nothing to do with the web adaptor but everything with IIS. Also, you can still use Web adaptors when using NLB appliances.
Either you need an external appliance to redirect (e.g. F5, KEMP, Citrix etc)
or you install and configure URL Rewrite.
I can only suspect that the url rewrite rule applied to the IIS application (in this case, the Web adaptor) was incorrectly configured OR my other suspiciton is that you are unaware that installing the web adaptor,choosing 443 will change some IIS settings which the URL redirect may not work under.
Lets make sure your redirect (using URL Rewrite) is setup first..
using IIS 8.5
type in the http link to the web adaptor.. get a 403.
go to IIS
you will have already installed the urlrewrite either on its own or using the web platform installer.
e.g.
Here you can see 3.21 (JSAPI) and the arcgis web adaptor
You can create the new inbound rule to the site so that all child applications will get the redirect.
Add rules
Add a blank inbound rule
Name it, Redirects to HTTPS
pattern: (.*)
Add a condition
Condition input is {HTTPS}
Pattern: ^OFF$
Press OK
Go to ACTION pulldown panel
Action Type: Redirect
Redirect URL: https://{HTTP_HOST}/{R:1}
Redirect Type: See Other (303)
Click on APPLY
Verify the changes were successful
IIS will now look like so:
Lets refresh our default page.
yes... redirects.
try a JSAPI under 3.21
yes.. redirects
Try the web adaptor...
In your case, i 'suspect' that it will not work...
go to the SSL settings for the web adaptor:
If Require SSL is checked... uncheck it.
Make sure to apply and verify successful
*** what i have found is that when installing the web adaptor, choosing port 443 auto checks a setting interfering with the URL Redirect.
Now try your web adaptor link... (not even http just machine name...(or http)
and you should now get redirected to HTTPS
Of course, next step is to get a valid cert....
Thank you for the detailed instructions, Michael. I actually already had my URL Rewrite rule set this way and did not have SSL settings checked. The redirect is working on the server now, but not from the outside. I will have to check with the IT folks to see if they are blocking 80, 443, 6080, or 6443 outside of the network.
Hi Michael,
Its good to have all the steps to help with troubleshooting.
Regarding the outside traffic. You would hit the web adaptor, which is port 443.
Port 6080 and 6443 is only between ArcGIS Server (AGS) and the machine with the web adaptor. you are saying this works on the server.
Is it possible that there are additional hardware, traffic manipulation occuring with the incoming traffic?
It sounds like you are one step closer.
Resolved. The IT folks were blocking something at the firewall. It's purring like a kitten now! Thanks for your help
them pesky network IT guys...
What specifically was being blocked? I am now curious how that could be broken becuase its only 443 going out.
Not sure. They must have been blocking 443 because it worked on the server itself. Thanks for all of your help.
I just went through the instructions in the link below and it seems to work:
Redirect from HTTP to HTTPS using the IIS URL Rewrite module – Damian Wiese
Have you taken a look at that?