次の方法で共有


ASP を使用して特定のページに対して SSL を強制する

この記事では、Active Server Pages (ASP) を使用して、MMC で変更を加えずに特定のページに対して Secure Sockets Layer (SSL) を強制する方法について説明します。

元の製品バージョン: Microsoft Active Server Pages
元の KB 番号: 239875

まとめ

多くの場合、Web サイト上の特定のページに対して SSL を要求することをお勧めします。 これは Microsoft 管理コンソール (MMC) の Internet Services Manager (ISM) を使用して構成できますが、ASP を使用して、MMC を変更せずに特定のページに対して SSL を強制することもできます。

すべてのユーザーが Windows Server 2008 で実行されている インターネット インフォメーション サービス (IIS) バージョン 7.0 にアップグレードすることをお勧めします。 IIS 7.0 では、Web インフラストラクチャのセキュリティが大幅に向上します。

前提条件

この記事では、次の条件を前提としています。

  • IIS は標準ポートで実行されています。

    • HTTP = ポート 80
    • HTTPS = ポート 443
  • IIS には有効な SSL 証明書がインストールされています。

  • 使用される Web サイトまたは仮想サーバーは、名前解決に HTTP/1.1 ホスト ヘッダーを使用しません。

ASP を使用して SSL を強制する

ASP を使用して SSL を強制するには、次の手順に従います。

  1. [開始] をクリックし、[実行] をクリックし、「Notepad」と入力して、[OK] をクリック。

  2. 次のコードを空のメモ帳文書に貼り付けます。 [ File メニューの 名前を付けて保存] をクリックし次のコードを 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 が必要なページごとに、ページの上部に次のコードを貼り付けて、前の手順のインクルード ファイルを参照します。

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

各ページが参照されると、インクルード ファイルに含まれる ASP コードによってポートが検出され、HTTP が使用されているかどうかを判断します。 HTTP が使用されている場合、ブラウザーは HTTPS を使用して同じページにリダイレクトされます。

関連情報