2009-05-02 16 views
2


SSL接続

A)あなたは、サーバー側で、唯一のWebアプリケーションごとに)セキュリティで保護されたチャネルのオプションを必要と選択を経て(SSL接続を強制することができ、またはあなたはまた、仮想ディレクトリごとに、あるいはのみごとにそれを強制することができますを強制ウェブページ?


B)はどのように正確にSSL接続作業を実施するのでしょうか?ユーザーが(要求されたURLの)httpsプロトコルの代わりにhttpを指定すると、要求は自動的にIISによって拒否されますか?


ありがとう

答えて

3

上記のように、1)サーバー、サイド、または仮想ディレクトリでSSLを設定できます。

2) "Require Secure Channel"設定を使用してserver/site/vdirを設定した場合、サーバーからの応答は "403.4禁止:このリソースを表示するにはSSLが必要です"となります。 "403.5禁止:このリソースを表示するにはSSL 128が必要です。"

実際に403.4または403.5のエラーをカスタマイズして、HTTPSにリダイレクトすることができます。 SSLなし要件**これは重要です) - 私は "CustomError"を使用します。 403_4_Error.aspは以下を含むと呼ばれるこのディレクトリ内のASPファイルを作成します。

<%@ LANGUAGE="VBScript" %> 
<% 
if Request.ServerVariables("HTTPS") <> "on" then 
    sServer = Request.ServerVariables("SERVER_NAME") 
    sScript = Request.ServerVariables("SCRIPT_NAME") 
    sQuery = Request.ServerVariables("QUERY_STRING") 
    Response.Write("https://" & sServer & sScript & "?" & sQuery) 
end if 
%> 

編集403.4/403.5のためのサーバ/サイト/仮想ディレクトリのカスタムエラープロパティをとURLへのMessageTypeとURLに「/ CustomErrorを設定/ 403_4_Error.asp "

ASPが使用されているので、ASP.netや他のスクリプト言語を簡単に使用できます。

+0

これは非常に便利ですx – SourceC

2

は、IISのレベルでこれを強制するために構成設定があるかもしれませんが、コードでは、あなたはとてもようRequest.IsSecureConnection値をチェックすることができ:

if (!Request.IsSecureConnection) 
{ 
    try 
    { 
     Response.redirect("https://....", true); 
    } 
    catch (ThreadAbortException) 
    {} 
} 

」 .... "は現在のページのURLです。このタイプのコードに適した場所は、MasterLayout.masterファイルのPage_Loadメソッドです。

+0

IISレベルでSSL(ウェブページ単位)を適用する方法はありますか? – SourceC

1

それを行うためのきちんとした方法は、各受信リクエストを検査し、必要に応じてリダイレクトするHttpModuleを登録することです。カスタムエラーの必要はありません。

これはどのように行われたかを示すblog postです。