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 へのリダイレクトのこの方法では、次のことを行う必要があります。
- Microsoft URL Rewrite Module をインストールする
- IIS 7 に SSL 証明書をインストールし、Web サイトにバインドする
- Make sure Require SSL is NOT checked under SSL Settings for (このスクリーンショットでチェックされているボックスのチェックを外す)
- 次のコードをコピーして、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> - http://www.yoursite.com にアクセスしてサイトをテストし、リダイレクトすることを確認する
Method 2 – カスタム エラーページの設定
IIS7 リダイレクト HTTP から HTTPS の設定方法の 2 番目は、サイトまたはサイトの一部での SSL 要求とカスタム 403.4 エラーページのセットアップを行う方法です。 これを行うには、次の手順を実行するだけです。
- IIS 7 に SSL 証明書をインストールし、Web サイトにバインドする
- IIS でサイト名をクリックし、SSL 設定セクション
- Check Required SSL and Require 128-bit SSL and click Apply
- これを行うと、通常ユーザーはこのエラーを受け取ることになります。
-
新しいテキスト ファイルを作成し、その中に以下を貼り付けます:
<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> - ファイルを redirectToHttps として保存します。
- IISに戻って、サイト名をクリックし、Error Pages オプション
- 追加…をクリックし、状態コードとして 403.4 を入力します。 先ほど作成した redirectToHttps.htm ファイルを参照し、OK
- エラーコードを選択し、機能設定の編集…
- カスタム エラー ページオプションをクリックし、再度 redirectToHttps.htm を参照する。htm ファイル
- 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