开发者

Azure mod-rewrite to SSL doesn't work

I have deployed an ASP.NET web application to Azure running in a web role. It is configured with a DNS name like 'myapp.cloudapp.net' and SSL (the certificate is self-signed, meaning we get a certificate warning but otherwise this is all set up and works fine)

I want to automagically route requests the come on http to https. So, I added an http endpoint and set up a rewrite rule as per the instructions here (second method):

http://blog.smarx.com/posts/redirecting-to-https-in-windows-azure-two-methods

It doesn't work properly.

Testing directly on the Azure machine (via remote desktop):

  • Access https://myapp.cloudapp.net - works
  • Access http://myapp.cloudapp.net - "Internet explorer cannot display the webpage"

So I go to IIS and 'browse' my site: this takes me there via the IP address:

  • Access https://[ipaddress] - works
  • Access http://[ipaddress] - works! Sends me to https://[ipaddress]

So what am 开发者_运维百科I missing, that this works via IP address but not by host name?

I would like to hit http://myapp.cloudapp.net and be redirected to https://myapp.cloudapp.net.

For the record, here is the relevant parts of my configuration:

<Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="Endpoint1" endpointName="MyApp" />
      <Binding name="Endpoint1" endpointName="MyAppHttp" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="MyApp" protocol="https" port="443" certificate="MYCERT" />
  <InputEndpoint name="MyAppHttp" protocol="http" port="80" />
</Endpoints>
<Certificates>
  <Certificate name="MYCERT" storeLocation="LocalMachine" storeName="My" />
</Certificates>

Can anyone help explain what I might be doing wrong?

Thanks in advance


Not a lot to go on, but one thing that jumps out at me is the 'name' of your bindings. Make them different.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜