web-dev-qa-db-ja.com

Chrome:ウェブサイトはHSTSを使用しています。ネットワークエラー...このページはおそらく後で動作するでしょう

私はlocalhostに対して開発しています。私がフィドラーを使用した直後の今朝、私はクロムでこのエラーを受け始めました(Firefoxでは正しく動作します)。

「ウェブサイトはHSTSを使用しているので、今すぐlocalhostにアクセスすることはできません。通常、ネットワークエラーや攻撃は一時的なものなので、このページはおそらく後で機能するでしょう。」 enter image description here

Localhostは、fiddlerが実行されている場合にのみクロムで動作します。私はすでに、フィドラーがシャットダウンしたときに、フィドラーが作成したプロキシリダイレクトが修正されていることを確認しました。

私はまた私の信頼されたルートに証明書をインポートし、ブラウザ(そしてまたマシン)を再起動しようとしました。

134
developer747

以前に https:// localhost にアクセスしたときは、安全なチャネル経由でのみアクセスしていただけではなく(httpではなくhttps)、特別なHTTPヘッダ:Strict-Transport-Security(しばしばHSTSと略されます)、将来の訪問のためには必ずhttpsを使うべきです。

これは、Webサーバーが(故意にまたは何らかの悪党によって)httpにダウングレードされるのを防ぐために使用できるセキュリティ機能です。

ただし、その後httpsサーバーをオフにしてhttpをブラウズしたいだけではできません(設計上、これがこのセキュリティ機能のポイントです)。

HSTSはまた、過去の証明書エラーを受け入れたりスキップしたりするのを防ぎます。

これをリセットしてHSTSがlocalhostに設定されないようにするには、Chromeのアドレスバーに次のように入力します。

chrome://net-internals/#hsts

"localhost"のこの設定を削除できるようになる場所。

また、将来この問題を回避するために、これを設定しているものを見つけたいと思うかもしれません。

他のサイト(www.google.comなど)では、これらはChromeコードに「プリロード」されているため削除できません。 chrome:// net-internals /#hstsでそれらを照会すると、それらがstatic HSTSエントリーとしてリストされているのがわかります。

そして最後に、Googleが.devドメイン全体のHSTSのプリロードを開始したことに注意してください。 https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts /

167
Barry Pollard

これを回避する1つの非常に簡単な方法は、「あなたの接続はプライベートではありません」という画面を見ているときです。

タイプbadidea

タイプthisisunsafe新しいパスフレーズを見つけるためのJava Guy への敬意)

それ以外の場合は、Chromeがクリックスルーで例外を設定することを許可していない場合、セキュリティ例外が許可されます。このHSTSの場合。

これは明らかにローカル接続とローカルネットワーク仮想マシンにのみ推奨されますが、直接ローカルホスト接続だけではなく、開発に使用されているVM(ポート転送ローカル接続など)で動作するという利点があります。

注:Chrome開発者は過去にこのパスフレーズを変更しましたが、また変更する可能性があります。 badideaが機能しなくなった場合、新しいパスフレーズを知った場合はここにメモを残してください。私は同じことをやろうとするでしょう。

編集:2018年1月30日現在、このパスフレーズは機能していないようです。

新しいものを見つけられたら、ここに投稿します。それまでの間、このstackoverflow記事で概説されている方法を使用して自己署名証明書をセットアップする時間をとります:

opensslで自己署名証明書を作成するにはどうすればいいですか?

編集:2018年3月1日およびChromeバージョン64.0.3282.186現在、このパスフレーズは.devサイトのHSTS関連ブロックでも機能します。

編集:2018年3月9日およびChromeバージョン65.0.3325.146現在、badideaパスフレーズは機能しません。

編集2:自己署名証明書の問題は、最近はセキュリティ基準が厳しくなるにつれて、独自のエラーがスローされることになっています(たとえば、nginxはSSLのロードを拒否しています)。デフォルトで、一連の認証局に自己署名証明書を含むTLS証明書)

私が今取り組んでいる解決策は、すべての私の.appと.dev開発サイトのトップレベルドメインを.testか.localhostに交換することです。 ChromeとSafariは、標準のトップレベルドメイン(.appを含む)への安全でない接続を受け付けなくなりました。

現在の標準トップレベルドメインのリストは、このWikipediaの記事にあります(特殊用途ドメインを含む)。

ウィキペディア:インターネットのトップレベルドメインの一覧:特殊用途ドメイン

これらのトップレベルドメインは、新しいhttps-only制限から免除されているようです:

  • 。地元
  • .localhost
  • 。テスト
  • (任意のカスタム/非標準トップレベルドメイン)

答えを見て、詳しい情報についてはcodinghandsから元の質問へのリンク:

コーディングハンドからの回答

142
Rick Gladwin

プライベートホスト名を使用してXAMPPで実行されているサイトでこの問題が発生しました。そんなにプライベートではない、それが判明!これらはすべてdomain.devであり、Googleは現在 をプライベートgTLDとして登録しています 、そしてドメインレベルでHSTSを強制しています。すべての仮想ホストを.devel(eugh)に変更し、Apacheを再起動すれば、すべてうまくいった。

18
codinghands

CloudFlare Origin CA を使用してドメインにアクセスしようとしたときに、私は最近同じ問題を抱えていました。

Chrome(Windowsビルド)でHSTS証明書の例外を回避/回避することがわかった唯一の方法は、 https://support.opendns.com/entries/66657664 .

回避策:
Chromeショートカットに--ignore-certificate-errorsフラグを追加してから開き直してWebサイトにアクセスします。

注意:
開発目的にのみ使用してください。

enter image description here

11
Binyamin

クロムウィンドウ内の任意の場所をクリックし、(以前のthisisunsafeではなく)badideaをクロムで入力します。

このパスフレーズは将来変更される可能性があります。これがソースです

https://chromium.googlesource.com/chromium/src/+/master/components/security_interstitials/core/browser/resources/interstitial_large.js#19

その行に従って、ブラウザコンソールにwindow.atob('dGhpc2lzdW5zYWZl')と入力すると、実際のパスフレーズが表示されます。

今回のパスフレーズはthisisunsafeです。

9
The Java Guy

同様のエラーが発生しました。 chrome:// net-internals /#hstsをリセットしてもうまくいきませんでした。問題は私のvmの時計が何日もずれているということでした。時間をリセットすると、この問題を解決できます。 https://support.google.com/chrome/answer/4454607?hl=ja

3
psglinux

同じエラーが発生し、シークレットモードにも同じ問題があります。 Chromeの歴史を明確にすることで、この問題を解決しました。

2
wangf

ここにはたくさんの役に立つ答えがあるのを私は見ますが、それでも、私はそこに便利で役に立つ記事に出くわします。 https://www.thesslstore.com/blog/clear-hsts-settings-chrome-firefox/

私は同じ問題に遭遇しました、そして、その記事はそれが正確に何であるか、そしてどのようにそのHTHに対処するべきかについて私を助けました:-)

2
Ramakrishna

私は長い間この問題に苦しんできました。 GitHubのようなウェブサイトを開くことができませんでした。私はほとんどすべての答えをWeb上で試してみましたが、誰も働いていませんでした。クロムも再インストールしようとしました。私たちのネットワーク担当者からこの問題に対する解決策を見つけたところ、うまくいきました。永続的にこのエラーを解決するレジストリの修正があります。

  1. Windows + R キーを押して実行ダイアログボックスを開きます。
  2. regedit と入力し、Enterキーを押してレジストリを開きます
  3. 左側のツリービューで、次のパスをクリックします。 HKEY_LOCAL_MACHINE>ソフトウェア>ポリシー> Microsoft> SystemCertificate> Authroot
  4. 右側の DisableRootAutoUpdate をダブルクリックし、表示されるダイアログボックスで0(zero)に設定します。
  5. PCを再起動してレジストリの変更を適用すると、このエラーはもう発生しなくなります。

上記の解決策はWindows 8用です。それはそれ以降のバージョンでもほぼ同じですが、XPやVistaのような以前のバージョンではよくわかりません。だからそれをチェックする必要があります。

2
Maulik Modi