web-dev-qa-db-ja.com

IIS 6.0でSSLをエレガントに適用する

IISでSSL証明書が適用されているWebサイトを実行しています。[セキュリティで保護されたチャネルが必要]チェックボックスをオンにすることで簡単に実行できるWebサイトのHTTPS使用を強制したいのですが、これにより、人々がHTTP経由で接続する機能をすぐに壊します(設計どおり)。

私がやりたいのは、間違った入力をした場合(または古いブックマークから接続した場合)に、HTTP-> HTTPSから自動的にリダイレクトする方法を見つけることです。

IISで2番目のWebサイトを作成せずにこれを行う方法はありますか?

4
kdmurray

サーバーレベルでそれを行う必要がある場合は、別のサイトを作成して、httpsサイトを転送する必要があります。

コードを編集できる場合は、サーバーレベルでsslを強制することができますnot代わりに、URLがhttp:で始まるかどうかを検出し、https:で同じURLにリダイレクトすることで、Webサイトでそれを行うことができます。代わりに。

3
Jimmie R. Houts

私はこれを投稿しました StackOverflow

サーバー/サイト/ vdirが「セキュリティで保護されたチャネルを要求する」設定を使用して構成されている場合、サーバーからの応答は「403.4禁止:このリソースを表示するにはSSLが必要です」になります。エラーまたは「403.5禁止:このリソースを表示するにはSSL128が必要です。」.

実際には、403.4または403.5エラーをカスタマイズして、HTTPSにリダイレクトすることができます。 SSL要件なし**これは重要ですを使用してサイトの下にVDIRを作成します-))-「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
%>

Server/site/vdirの403.4/403.5のカスタムエラープロパティを編集し、MessageTypeをURLに設定し、URLを「/CustomError/403_4_Error.asp」に設定します。

ASPが使用されているため、ASP.netまたはその他のスクリプト言語を簡単に使用できることに注意してください。

8