この記事では、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 を強制するには、次の手順に従います。
[開始] をクリックし、[実行] をクリックし、「Notepad」と入力して、[OK] をクリック。
次のコードを空のメモ帳文書に貼り付けます。 [ 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 %>
SSL が必要なページごとに、ページの上部に次のコードを貼り付けて、前の手順のインクルード ファイルを参照します。
<%@Language="VBSCRIPT"%> <!--#include virtual="/ForceSSL.inc"-->
各ページが参照されると、インクルード ファイルに含まれる ASP コードによってポートが検出され、HTTP が使用されているかどうかを判断します。 HTTP が使用されている場合、ブラウザーは HTTPS を使用して同じページにリダイレクトされます。