DigiCert証明書の正規代理店株式会社アールエムエス
DigiCert サーバー証明書利用団体
  1. ホーム
  2. HTTPS入門
  3. リダイレクトとHSTS

リダイレクトとHSTS

全ページをHTTPSアクセスにしてWeb サイトの安全性を確保するためには、サーバー証明書が正しく設定され混在コンテンツ対策が完了した後にも行わなければならないことがあります。
それが、リダイレクトとHSTSです。

リダイレクト

すべてのコンテンツがHTTPS接続で表示されるように設定されても、80番ポートは閉じないようにします。
ブラウザは、URLバーに example.com と入力された場合、一般に http://example.com/ に接続(HTTP接続)しようとします。
また、古いリンクデータで http://example.com/ がどこかに残っているかもしれません。
80番ポートを閉じてしまうと、こうしたアクセスがすべてページが見つからないというエラーになります。

そこで、80番ポートを閉じる代わりに、HTTPアクセスをHTTPSに導く、リダイレクト設定を行います。

リダイレクト設定方法の例

Apacheでは、confファイルの example.com ドメインの80番設定部分に以下のような記述を行うことで、該当ドメインへのすべての http://example.com アクセスを https://example.com にリダイレクトできます。

Redirect permanent / https://example.com/

IIS7.0以降の場合、URL Rewrite Moduleを使ってリダイレクト設定ができます。
その場合、web.configファイルには以下のように記載されます。

<rewrite> <rules> <rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" negate="false" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> </rule> </rules> </rewrite>

HSTS

すべてのコンテンツがHTTPS接続で表示されるように設定され、HTTPアクセスがHTTPSにリダイレクトするよう設定されていても、最初にHTTPでアクセスした時点で攻撃者がユーザーのCookieを傍受し個人情情報を収集したり、フィッシングサイトへリダイレクトしたりする可能性があり、セキュリティ上の問題が残ります。
こうした危険を減らすことができるのがHSTSです。

HTTP Strict Transport Security(HSTS)は、ブラウザに対して常にHTTPS経由でWebサイトに接続するよう指示します。
HSTSを設定すると、URL入力時に意図的に http:// を指示しても、ブラウザはHTTPS接続を行います。

HSTS設定方法の例

Apache、nginxでは、confファイルのドメインの設定部分に以下のような記述を行うことで、HSTSを有効にできます。

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • max-age
    HSTSの有効期間です。ブラウザは指定された秒数の間、HSTSを有効にします。31536000は1年を意味します。テスト段階では短期間に設定し、検証後、31536000に設定するのがおすすめです。
  • includeSubDomains
    サブドメインでのHSTSを有効にします。この場合、事前にサブドメインで有効な証明書を用意し、サブドメインのHTTPS利用設定を行っておく必要があります。
  • preload
    HSTS Preloadリストに含まれることを希望する場合、このフラグを指定します。

IISの場合、[カスタム HTTP 応答ヘッダーの追加]ダイアログの[名前]テキストボックスに、「strict-transport-security」を入力します。
その後、[値]のテキストボックスにmax-age=(有効期間秒数 例:31536000)を入力します。

IIS7.0以降の場合、web.config ファイルに以下のような、Strict-Transport-Security ルールの追加設定ができます。

<rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=31536000; includeSubDomains; preload" /> </rule>

IIS10 1709からは、サイトごとの設定が可能になりました。
詳細はMicrosoftのページを確認してください。

初めてのアクセスからHTTPSにする方法

「preload」を指定すると、HSTS Preloadリストに登録され、Chrome、Firefox、Opera、Safari、IE 11、Edgeで最初のアクセスからHTTPSプロトコルとなり、安全性を確保できます。
しかし、登録完了日が保証されませんので、急ぐ場合は直接、HSTS Preload List Submissionに登録します。
以下が登録方法の概要です。

  1. 以下のリンクから「HSTS Preload List Submission」にアクセスし、example.com となっている欄に登録を希望するドメイン名を入力して、「Check HSTS preload status and eligibility」をクリックします。
  2. ドメイン管理者かどうか、サブドメイン登録に同意するか、の2か所のチェックボックスに対応し「Submit」ボタンをクリックします。
    「HSTS Preload List Submission」は Strict-Transport-Security の指定内容をチェックし矛盾がなければ、ただちに登録を受け付けます。
    max-age が 31536000 より短い場合は受け付けられません。

全ページ HTTPS 化関連情報

SSL サーバ証明書とは?
30日間テスト証明書
30日間返金保証制度あり!
コードサイニング証明書
ドキュメントサイニング証明書
デジタル証明書ニュース
HTTPS入門
digicert.comトピックス&ニュース