web-dev-qa-db-ja.com

SSLを強制せずにNetlifyがトラフィックをhttpからhttpsにリダイレクトできます

Netlifyコミュニティからよく寄せられる別の質問。 「Netlifyは、SSL(TLS)を強制せずにトラフィックをhttpからhttpsにリダイレクトできますか?」

証明書を配置したら、ボックスをチェックしてTLSを強制できます。これにより、httpからhttpsへのリダイレクトが設定され、すべてのリクエストにStrict Transport Securityヘッダーが追加されます。

ユーザーは、すべてが正しくセットアップされ、セットアップを変更しないことがわかるまで、SSLを強制したくありません。

9
talves

2018年11月の更新

受け入れられた答えはもはや真実ではありません

現在、2018年11月(2018年7月以降)に、Netlifyのすべての新しいサイトはHTTPSであり、強制リダイレクトがデフォルトでオンになっていますとあなたオフにすることはできません

ブログ投稿を参照してください:

そしてGitHubのこの問題:

古いサイトでも、HTTPSをオフにするオプションまたはHTTPSへのリダイレクトをオフにするオプションは使用できなくなりました。

enter image description here

9
rsp

Netlifyでは、TLSを強制することができます。すべてのURLがhttpsで機能することが確実になるまで「TLSを強制しない」ことをお勧めします

すべてのURLが「https://」で動作していることが確実になるまで、「TLSを強制する」オプションをオンにしないでください!

どうして?

Netlifyを使用してTLSを強制すると、ページ応答ヘッダーにSTS(Strict-Transport-Security)ヘッダーが設定されます。私は説明はしませんが、- ここでそれを読むことができます

知っておくべき主なことは:

サポートされているブラウザーがこのヘッダーを受信すると、そのブラウザーはHTTPを介して指定されたドメインに送信される通信を阻止し、代わりにすべての通信をHTTPSを介して送信します

Netlifyの設定([TLSを強制する]チェックボックスを使用)は、訪問ブラウザに1年過去の訪問日についてこれを強制するようになっていることに注意してください。したがって、httpsでエラーが発生した場合、修正するまでサイトに問題が発生します。

待つ!

証明書を追加した後も、サイトで常にhttpsページが提供されるようにしたいが、問題のテスト中または処理中に強制されないようにする必要があります。

解決:

デプロイされたサイトのルートにある_redirectsファイル(index.htmlの横にある "Publishディレクトリ"内)を使用して、トラフィックをhttpsにリダイレクトします。

これはファイルの例です

_redirects

# redirect netlify sitename to your sitename for SEO purposes,
# to avoid duplicate content.  Do this for http and https
https://example.netlify.com/* https://www.example.com/:splat 301!
http://example.netlify.com/* http://www.example.com/:splat 301!

# also redirect http to https for your custom domain.
# Note that netlify automatically redirects to your custom domain from the bare domain (or vice versa), so you only need one rule here.
http://www.example.com/* https://www.example.com/:splat 301!

または Structured Redirects を使用した同じリダイレクト

netlify.toml

[[redirects]]
  from = "https://example.netlify.com/*"
  to = "https://www.example.com/:splat"
  status = 301
  force = true

[[redirects]]
  from = "http://example.netlify.com/*"
  to = "http://www.example.com/:splat"
  status = 301
  force = true

[[redirects]]
  from = "http://www.example.com/*"
  to = "https://www.example.com/:splat"
  status = 301
  force = true

注:

  • Netlifyはすでにベアドメインをwwwサブドメインにリダイレクトしています(オプション)
  • [〜#〜] any [〜#〜] DNS設定でNetlify CDNを最大限に活用するには、カスタムドメインとしてwwwを使用することをお勧めします。
  • netlifyサブドメインサイトをカスタムドメインにリダイレクトします(オプション)。
  • すべてのパスでhttphttpsにリダイレクトします
7
talves