IIS 10 は HSTS を有効にした後、HTTP を HTTPS にリダイレクトしません。

IIS 10 は HSTS を有効にした後、HTTP を HTTPS にリダイレクトしません。

エンド ユーザーが当社のサイトにアクセスするときに、HTTPS を強制的に使用するようにしています。IIS では、サイト レベルとアプリケーション レベルで HSTS を有効にしています。サイト レベルで への HTTP リダイレクトを設定していますhttps://ourdomain.com。当社のサイトのホームページにアクセスしてヘッダーを確認することはできますが、からStrict-Transport-Security: max-age: XXXX; includeSubDomainsへのリダイレクトは取得できません。http://internal-hostname/https://ourdomain.com

もう読んだIIS 10.0 バージョン 1709 HTTP Strict Transport Security (HSTS) サポート、手順は正しく実行したと思います。HSTSを有効にした後、HTTPからHTTPSへの自動リダイレクトを期待していました。また、IIS ですべての HTTP を HTTPS にリダイレクトする最適な方法ただし、その質問は IIS7 に焦点を当てたものでした。それ以来、HSTS サポートに関しては多くのことが変更されましたが、自動リダイレクトに対する私の期待は間違っているかもしれません。

システムインフォメーション:

  • Windows Server 2019 (バージョン 1809)
  • 10.0.17763.1 より

私がしたこと:

  1. IIS 構成マネージャーを開きました。

  2. 「既定の Web サイト」を右クリックし、「Web サイトの管理」を選択して、「詳細設定」をクリックしました。

  3. 次の設定を使用して HSTS を有効にしました。

    • 有効: True
    • サブドメインを含める: True
    • 最大年齢: 31536000
    • プリロード: False
    • HTTP を HTTPS にリダイレクトする

    HSTS が最大経過時間とリダイレクトで有効になっていることを示す詳細設定のスクリーンショット

  4. 「OK」をクリックしました

  5. 「既定の Web サイト」をクリックし、「IIS」セクションの「HTTP リダイレクト」を選択しました。

  6. 「この宛先にリクエストをリダイレクトする」にチェックマークを付け、HTTPS URL (この特定の Web サーバーではなく、ロード バランサー) を入力しました。

    既定の Web サイトの IIS HTTP リダイレクト設定のスクリーンショット

  7. IIS を再起動しました。

  8. Web サーバーへのリモート デスクトップ セッションを使用しているときに、Microsoft Edge を開きました。

  9. http://internal-hostname/Edgeに行ってきました。

予想される行動:ユーザーは にリダイレクトされますhttps://ourdomain.com

実際の動作:ブラウザに「403.4 禁止」エラー ページが表示されました。

開発者ツールを開いて Strict-Transport-Security ヘッダーを表示したホームページのスクリーンショット

HSTSは有効になっているようです。Strict-Transport-Security応答で期待されるHTTPヘッダーを取得していますが、HTTPからHTTPS 1へのリダイレクトは取得していません。RFC 6797


1良い答えとしては、「HSTS」は IIS 10 では中途半端なソリューションであり、HTTP リダイレクト ルールを実際に追加する必要がある、ということも考えられます。

関連情報