IIS7重定向最佳实践
我正在寻找使用 IIS7 和 ASP.net 进行安全站点重定向的“最佳实践”方法。 假设我有两个域名:
- mydomain.com
- mydomain.net,
每个域名都有一个 www 子域。
我有一个使用通用名称的 EV 证书:
- www.mydomain.com
因此,用户可以通过 8 种不同的可能方式访问该站点:
- http://mydomain.com
- http://mydomain.net
- http://www.mydomain.com
- http://www.mydomain.net
- and also using https://
为了使用户不会收到证书错误,必须将他/她定向到
- https://www.mydomain.com
什么是使这项工作对用户透明,同时仍然确保 IIS 仅提供安全内容的最佳方法是什么?过去,我使用 web.config 重定向到如下所示的子页面:
<system.webServer>
<httpRedirect destination="https://www.mydomain.com/secureSubPage" />
或使用通配符证书在公共基页中使用此块:
if (!Request.IsSecureConnection)
{
Response.Redirect(Request.Url.ToString().Replace("http:", "https:"), true);
return;
}
if (!Request.Url.ToString().Contains(".com"))
{
Response.Redirect(Request.Url.ToString().Replace(".net", ".com"), true);
return;
}
I am looking for the "best practice" way of secure site redirection with IIS7 and ASP.net.
Say I have two domain names:
- mydomain.com
- mydomain.net
each with a www subdomain.
I have a single EV certificate that uses the common name:
- www.mydomain.com
Therefore, the user can access the site 8 different possible ways:
- http://mydomain.com
- http://mydomain.net
- http://www.mydomain.com
- http://www.mydomain.net
- and also using https://
In order for the user to not receive certificate errors, he/she must be directed to
- https://www.mydomain.com
What is the best way to make this work transparently to the user while still ensuring that IIS serves up only secure content? In the past I have used web.config to redirect to a sub page like this:
<system.webServer>
<httpRedirect destination="https://www.mydomain.com/secureSubPage" />
or with wildcard certificates using this block in a common base page:
if (!Request.IsSecureConnection)
{
Response.Redirect(Request.Url.ToString().Replace("http:", "https:"), true);
return;
}
if (!Request.Url.ToString().Contains(".com"))
{
Response.Redirect(Request.Url.ToString().Replace(".net", ".com"), true);
return;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会使用
UrlRewrite
,我一直将它用于子域:使用 URL 重写 2.0 自动将 HTTP 请求重定向到 IIS 7 上的 HTTPS
I would use
UrlRewrite
, I use it for sub-domains all the time:Automatically Redirect HTTP requests to HTTPS on IIS 7 using URL Rewrite 2.0