Active Directory ドメインに Windows 2016 サーバー (FQDN: server1.domain) があります。IIS でイントラネット Web アプリをホストしています。
最近、DNS にそのサーバーのエイリアス (FQDN: CoolName.domain) を作成しました。TLS 証明書は内部証明機関によって生成されました。IIS 内で、ポート 443 をホスト名CoolName.domain
とCoolName
証明書にバインドしました。
server1.domain/app1
ユーザーが古いドメインを入力するたびに、既存のアプリを古いドメイン (つまり) からエイリアス (つまり ) にリダイレクトできるようにしたいと考えていますCoolName.domain/app1
。また、ユーザーが HTTP を使用している場合は、HTTPS を強制します。
私の試みは、IIS マネージャー内のサーバー レベルで HTTP リダイレクト モジュールを使用し、次のように入力することでした。
リクエストをこの宛先にリダイレクトします:https://クール名.ドメイン
リダイレクト動作: チェック済み
Redirect all requests to exact destination (instead of relative to destination)
次に適用を押します。
私が行ったオプションの画像参照:https://i.stack.imgur.com/vgPld.jpg
次のリンクにアクセスすると、リダイレクトに失敗しました。
http://server1
http://CoolName
http://CoolName.domain
最終的http://server1.domain
に にリダイレクトされましたhttps://CoolName.domain
。
ドメインを越えるURLをリダイレクトしようとしたのですがhttp://CoolName.domain/app1
、リダイレクトされません。すべてのリクエストを正確な宛先にリダイレクトする(宛先に相対的ではなく)#2で。
私の要件は HTTP リダイレクトだけで実現できますか?
答え1
最初の投稿では、「HTTP リダイレクトが多すぎます」というエラーが発生していることを述べ忘れていました。HTTP リダイレクトを有効にして、同じ Web サイト (別のエイリアスであっても) にリダイレクトすると、リダイレクトが延々と続くことが判明しました。どうやら IIS は、同じドメインにリダイレクトされているかどうかを検出できるほど賢くないようです。不思議ですね。私は、次の手順に従って問題を解決しました。https://stackoverflow.com/a/49460688
要約すると、ダミーの Web サイトを作成し、そのサイトを通過するすべてのポート 80 HTTP トラフィックを IIS にバインドすると、元の IIS Web サイトで構成された HTTPS にリダイレクトできます。これを行うには、次の手順を実行します。
- 既定の Web サイト - すべての HTTP トラフィックを 80 以外の空きポートにバインドします (または、HTTP バインドを削除できます)。HTTPS バインドはそのままにしておきます。
- IIS に新しい Web サイト (RedirectSite) を作成します。すべての HTTP トラフィックをポート 80 にバインドします。
- DummySite 設定内で、HTTP リダイレクトをクリックします。「この宛先にリクエストをリダイレクトする」ボックスをオンにし、宛先 URL フィールドに HTTPS を含む完全なドメインを入力します。例:https://クール名.ドメイン. HTTP コード 301。ドメインに関連するすべてをリダイレクトしたいので、他のボックスをチェックする必要はありません。設定を保存するには、「適用」をクリックしてください。
設定を適用した後、Windows 認証を使用している場合は、変更が反映されるまで数分間待ちます。リダイレクトを試みたところ、認証エラー (HTTP 40x.x) の問題が発生しました。リンクをテストする前に、クライアント ブラウザーのキャッシュをクリアしてください。
テスト。最終的には、最初の投稿どおりにリンクを使用しました。
http://サーバー1
http://クールネーム
これらのリンクは最終的にhttps://CoolName.ドメイン。
両方の Web サイトに関する補足事項として、該当する場合は次のようになります。
IIS_IUSRS と IUSR に Web サイト ディレクトリの読み取り/実行権限があることを確認します。[Server_name]\Users も同様です。
Windows認証が正しく構成されていることを再確認する