自動IIS6 403.4がSSLにリダイレクトしない
-
18-09-2019 - |
質問
ASP.NET Webサイトには、SSLを有効にする必要がある単一のディレクトリがあります。他のすべてのディレクトリについては、SSLを有効にしたくありません。
IISを使用して、SSLを要求するフォルダーの必要なセキュアチャネル(SS)と128ビット暗号化チェックボックスをチェックしました。
これで、ユーザーが「http://」を入力すると、Secureディレクトリの場合、自動的に「https://」にリダイレクトします。私は2つのアプローチを試しましたが、両方とも失敗しました。
アプローチ1:403のディレクトリのIISカスタムエラーページを変更します。 sslredirectは、それらを正しいサイトを指します。それを行うと、URLがWebサイトの一部であり、Webサイト全体に1つのアプリプールしか持っていない場合でも、「現在のアプリケーションプールから指定されたリクエストを実行できません」エラーを取得します。
アプローチ2:ディレクトリにWeb.Configを追加して、403エラーコードをオーバー化します。このように見えます:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors defaultRedirect="../Default.aspx" mode="On">
<error statusCode="403" redirect="../SSLRedirect.aspx" />
</customErrors>
</system.web>
</configuration>
しかし、この変更を行うと、IISで定義されたデフォルトの403.4を常に取得します。
助言がありますか?
解決
アプローチ1:Webサイト全体に設定されたアプリプールは1つだけであると考えるのは間違っているようです。おそらく、デフォルトのサイト用に1つ、もう1つは使用している仮想ディレクトリ用です。あなたの選択は次のとおりです。
a)サイト全体にアプリプールを1つだけ持っているように、再構成してください。
b)エラーを生成するページと同じアプリプールにあるディレクトリからエラーページを配信します
c)レジストリを微調整してこのエラーをシャットダウンします。IngReAppPoolForCustomErrorsをHKLM System currentControlset Services W3SVC パラメーターで1に設定します。見る http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx
アプローチ2:web.configのカスタムエラーは、ASP.NETがエラーを処理している場合にのみ使用されます。 SSLチェックが失敗したため、IISはここでASP.NETハンドリングエンジンを魅力的ではないと思います。したがって、これは単にここでは機能しません。