http和https技术之间的区别

时间:2012-04-25 18:16:55

标签: asp.net

在使用Certificate/License/Registration启动网站之前是否需要https

我想在Global.asax文件中使用上述代码。

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] 
+   HttpContext.Current.Request.RawUrl);
}

2 个答案:

答案 0 :(得分:1)

首先,我认为你永远不会达到它,因为当你重定向所有请求时,它会一遍又一遍地循环Application_BeginRequest ...

如果请求来自非安全连接(http),也许您所追求的是重定向,不是吗?

为此,看看请求是否来自这样的连接:

  protected void Application_BeginRequest(object sender, EventArgs e)
  {
     if (!HttpContext.Current.Request.IsSecureConnection)
        Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri.Replace("http://", "https://"));
  }

其次,HTTPS协议需要启动并运行,否则您将收到ERR_SSL_PROTOCOL_ERROR错误。

在Visual Studio中,您可以在项目属性

中轻松启用https

enter image description here

你会得到不应有的警告

enter image description here

由于Visual Studio在安装时生成了默认的自签名证书。

在生产环境中,您需要:

  • 如果是Intranet应用程序,只需使用自签名证书
  • 在互联网应用程序上,您需要购买SSL证书,现在它们会更便宜,更便宜......

从您的评论我现在有一些问题......

  • 您了解HTTPS对客户端计算机与服务器之间的连接的作用吗?
  • 你真的需要两者之间的安全连接吗?
  • 您想要保护哪种数据?

答案 1 :(得分:0)

当您想使用secure HTTP(使用HTTPS协议)时,您说浏览器和服务器之间的流量是加密的。

这意味着您需要服务器上的证书,以便浏览器和服务器可以决定如何加密流量。

这与重定向无关,也与您的服务器设置无关。