Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a reverse proxy rule that forwards all requests to a specific subdomain to an internal server and everything works great.

 <rule name="" enabled="true" stopProcessing="true">
     <match url="(.*)" />
     <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
         <add input="{HTTP_HOST}" pattern="^(cloud.)$" />
     <action type="Rewrite" url="{R:0}" appendQueryString="true" />

This works for both http and https requests to However, I want all requests to to forward to which does the reverse proxy to the internal server. Any ideas?

share|improve this question
up vote 1 down vote accepted

The Rewrite and ARR modules take an existing request and re-route it to another server to fulfill that request.

SSL should always be between two endpoints, in this case the browser and the final server, you are trying to introduce SSL halfway through the process. If the rewrite module switches to SSL, how does the browser know about this? (it doesn't) What if the browser OS does not trust the certificate of the final server? This should not work.

What you should do it set up a redirect rule for all non-ssl requests, from http:// to https://, then the browser will repeat the request with SSL and it should go through all the way.

You need to add a condition like this one:

  <add input="{HTTPS}" pattern="off" ignoreCase="true" />
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.