我已将 ASP.NET Web 应用程序部署到以 Web 角色运行的 Azure。它配置了一个 DNS 名称,如“myapp.cloudapp.net”和 SSL(证书是自签名的,这意味着我们会收到证书警告,但除此之外,这一切都已设置完毕并且工作正常)
我想自动将来自 http 的请求路由到 https。因此,我添加了一个 http 端点,并按照此处的说明设置了重写规则(第二种方法):
http://blog.smarx.com/posts/redirecting-to-https-in-windows-azure-two-methods
无法正常工作。
直接在 Azure 计算机上测试(通过远程桌面):
- 访问 https://myapp.cloudapp.net - 作品
- 访问 http://myapp.cloudapp.net - “Internet Explorer 无法显示网页”
因此,我转到 IIS 并“浏览”我的网站:这将通过 IP 地址将我带到那里:
- 访问 https://[ipaddress] - 有效
- 访问 http://[ipaddress] - 有效!将我发送到 https://[ipaddress]
那么我错过了什么,这可以通过 IP 地址工作,但不能通过主机名工作?
我想打http://myapp.cloudapp.net并被重定向到https://myapp.cloudapp.net .
为了记录,这里是我的配置的相关部分:
<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>
谁能帮我解释一下我可能做错了什么?
提前致谢
最佳答案
没什么可说的,但让我惊讶的一件事是你的绑定(bind)的“名称”。让他们与众不同。
关于iis - Azure mod-rewrite to SSL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084428/