使用 ASP 对特定页面强制使用 SSL

本文介绍如何使用 Active Server Pages (ASP) 强制特定页面的安全套接字层 (SSL) ,而无需在 MMC 中进行更改。

原始产品版本: Microsoft Active Server Pages
原始 KB 编号: 239875

摘要

要求对网站上的某些页面使用 SSL 通常是很好的安全做法。 尽管可以通过 Microsoft 管理控制台中的 Internet Services Manager (ISM) (MMC) 进行配置,但也可以使用 ASP 强制特定页面的 SSL,而无需在 MMC 中进行更改。

注意

建议所有用户升级到 Internet Information Services (IIS) Windows Server 2008 上运行的版本 7.0。 IIS 7.0 显著提高了 Web 基础结构的安全性。

先决条件

本文假定以下条件:

  • IIS 在标准端口上运行:

    • HTTP = 端口 80
    • HTTPS = 端口 443
  • IIS 已安装有效的 SSL 证书。

  • 使用的网站或虚拟服务器不使用 HTTP/1.1 主机标头进行名称解析。

使用 ASP 强制 SSL

若要使用 ASP 强制 SSL,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”,键入 记事本,然后单击“ 确定”。

  2. 将以下代码粘贴到空白记事本文档中。 在“ 文件 ”菜单上,单击“ 另存为”,然后将 Web 服务器的根目录中的以下代码保存为名为 ForceSSL.inc 的包含文件:

    <%
    If Request.ServerVariables("SERVER_PORT")=80 Then
        Dim strSecureURL
        strSecureURL = "https://"
        strSecureURL = strSecureURL & Request.ServerVariables("SERVER_NAME")
        strSecureURL = strSecureURL & Request.ServerVariables("URL")
        Response.Redirect strSecureURL
    End If
    %>
    
  3. 对于需要 SSL 的每个页面,请将以下代码粘贴到页面顶部,以引用上一步中的 include 文件:

    <%@Language="VBSCRIPT"%>
    <!--#include virtual="/ForceSSL.inc"-->
    

浏览每个页面时,包含在 include 文件中的 ASP 代码将检测端口,以确定是否使用了 HTTP。 如果使用 HTTP,浏览器将使用 HTTPS 重定向到同一页。

References