SSL 証明書を比較する

IIS7 ですべてのトラフィックを HTTP から HTTPS にリダイレクトすると、ユーザーは常に安全にサイトにアクセスすることができるようになります。 IIS7 の HTTP から HTTPS へのリダイレクトを設定するにはさまざまな方法があり、中にはより優れた方法もあります。 理想的な HTTP から HTTPS へのリダイレクトは次のようになります。

  • Gentle Redirect users to HTTPS so you don’t have to type in “https” in the URL
  • Redirect users to the specific page that they were going to HTTP (page.htm)
  • Save any variable passed in the query string (?) to use.page=2)
  • すべてのブラウザで動作する
  • 301リダイレクトを使用してリダイレクト先のページに PageRank を転送し、SEO を維持する
  • サイトの特定の部分で SSL を強制し、他の部分で HTTP を許可する
  • mydomain.htm からユーザーをリダイレクトする
  • リダイレクト先のページに SSL を強制し、他の部分で HTTP を許可する
  • サイト内の特定の部分で HTTP を許可し、他の部分で SSL を許可する
  • サイト内の特定の部分で HTTP を許可する。com から www.mydomain.com

残念ながら、これらの要件をすべて満たす簡単な方法はなく、ほとんどの方法はそのうちのいくつかだけを満たします。 私が見た HTTP から HTTPS へのリダイレクトを行う最良の方法は、HTTP から HTTPS へのリダイレクトを行うために ASP.Net を使用することです。

しかし、ほとんどの人はこれらの機能すべてを必要としないので、IIS 7 で HTTP から HTTPS にリダイレクトする最良の方法を 2 つ挙げました。これらはセットアップが簡単でほとんどの状況に有効です。 なお、これらの方法は、IIS 8 および IIS 10 でも若干の修正を加えて動作するはずです。

Method 1 – Using Microsoft URL Rewrite Module

HTTP から HTTPS へのリダイレクトのこの方法では、次のことを行う必要があります。

  1. Microsoft URL Rewrite Module をインストールする
  2. IIS 7 に SSL 証明書をインストールし、Web サイトにバインドする
  3. Make sure Require SSL is NOT checked under SSL Settings for (このスクリーンショットでチェックされているボックスのチェックを外す)

  4. 次のコードをコピーして、Web.NET の <rules> と </rules> タグの間に貼り付けます。

    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
    <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
    </rule>

  5. http://www.yoursite.com にアクセスしてサイトをテストし、リダイレクトすることを確認する

Method 2 – カスタム エラーページの設定

IIS7 リダイレクト HTTP から HTTPS の設定方法の 2 番目は、サイトまたはサイトの一部での SSL 要求とカスタム 403.4 エラーページのセットアップを行う方法です。 これを行うには、次の手順を実行するだけです。

  1. IIS 7 に SSL 証明書をインストールし、Web サイトにバインドする
  2. IIS でサイト名をクリックし、SSL 設定セクション

  3. Check Required SSL and Require 128-bit SSL and click Apply

  4. これを行うと、通常ユーザーはこのエラーを受け取ることになります。

  5. 新しいテキスト ファイルを作成し、その中に以下を貼り付けます:

    <html>
    <head><title>Redirecting...</title></head>
    <script language="JavaScript">
    function redirectHttpToHttps()
    {
    var httpURL= window.location.hostname + window.location.pathname + window.location.search;
    var httpsURL= "https://" + httpURL;
    window.location = httpsURL;
    }
    redirectHttpToHttps();
    </script>
    <body>
    </body>
    </html>

  6. ファイルを redirectToHttps として保存します。
  7. IISに戻って、サイト名をクリックし、Error Pages オプション

  8. 追加…をクリックし、状態コードとして 403.4 を入力します。 先ほど作成した redirectToHttps.htm ファイルを参照し、OK

  9. エラーコードを選択し、機能設定の編集…

  10. カスタム エラー ページオプションをクリックし、再度 redirectToHttps.htm を参照する。htm ファイル

  11. http://www.yoursite.com にアクセスしてサイトをテストし、リダイレクトすることを確認する

IIS7 で HTTP から HTTPS へのリダイレクトを行うためにカスタム エラー ページを使用する注意点は、リダイレクトが機能するためには Web ブラウザで JavaScript が有効になっていなければならないことです。

IIS7 で HTTP から HTTPS にリダイレクトする他の方法:

  • ASP.NET Framework で Http から Https にリダイレクトする。Microsoft サポート – Outlook Web Access クライアントの HTTP 接続を HTTPS にリダイレクトする方法と、デフォルト Web サイトが Exchange 仮想ディレクトリを指すようにリダイレクトする方法
  • IIS 6 Redirect HTTP to HTTPS
  • Switching Between HTTP and HTTPS Like A Bigshot Hotshot

Originally posted on Sat Feb 27, 2010

コメントを残す

メールアドレスが公開されることはありません。