webdevqa.jp.net

Google Chromeが共通ベースのすべてのURLをSSL接続として扱わないようにする

ISPが提供するDNS名を介して複数のWebサイトをホストし、haproxyのインストールを使用して、ルーターのポート80を超えてそれらを分割します。私がそれらの1つをhttpsに変更するまで、それは私の(私はそれが11だと思う)ユニークなウェブサイトのために非常にうまく機能しました。

現在、Google Chromeは、すべてのWebサイトがhttpsであると想定しており、httpsであるWebサイトにのみアクセスできます:

Chromeがこれを行う理由は、すべてのWebサイトが私のドメイン名(myexampledomain.com)で始まるためだと思います。サンプルサイト1は---(http://myexampledomain.com/website-one/main .html およびサンプルサイト2は https://myexampledomain.com/website-two/main.html であり、何らかの理由で、chromeがhttpsに正常にアクセスした後です。リンクの場合、https以外のリンクはhttpsとして自動的にアクセスされます。 sを削除して(httpにするため)、chromeはそれをそこに追加し直します。

Internet Explorer 9を介して自分のWebサイトにアクセスしても、すべて正常に機能するか、少なくとも接続がhttpsとして自動的に自動完了されなくてもアクセスできます。つまり、いいえ、バックエンドのどこかにhttpからhttpsへのリダイレクトはありません。これはchromeがばかげているだけです。 Chromeがばかげている理由と、Chromeから他のサイトにアクセスする方法があるかどうかを誰かが知っていますか?私はIEが嫌いで、それを使用すると身体的な痛みを引き起こします;-)

2
Louis Parkin

(私たちの議論を適切な答えとして書くために:)

Google Chrome(および他のすべての最新のブラウザ)は Strict-Transport-Security HTTPヘッダーをサポートします。これは、ブラウザに「このサイトはアクセスされることになっているだけです。 HTTPS経由なので、将来的にはユーザーがHTTPを要求した場合でも、代わりにHTTPSを提供します。」HTTPSの使用がますます一般的になるにつれて、このヘッダーの送信は、一般的にHTTPSがで設定されている場合と同様に、新しいソフトウェアやフレームワークのデフォルトになりつつあります。すべて(Strict-Transport-Securityヘッダーが効果を発揮するために必要です)、すべてに使用することをお勧めします。ご存知のとおり、使用していたソフトウェアはデフォルトでこのように動作するように構成されています。 Webのこの機能をサポートするには古すぎるため、Internet Explorer9の動作は表示されません。

2つの解決策は、(1)すべてのユーザーにHTTPS経由を強制したくないため、ヘッダーを送信しないようにソフトウェアの構成を変更するか、(2)HTTPS経由で正しく動作するようにすべてのサイトを変更することです。 。サーバーを構成してHTTPS証明書を機能させると、今日ではインターネット上で暗号化されていない接続を使用する必要がないため、通常は2番目のオプションをお勧めします。

1
user169501

Peter Cooper Jr.のコメントによると、私の心痛はgitlabオムニバスにバンドルされたNGINXインストールによって引き起こされます。これは、接続しているクライアントに、通信するときは常にhttpsのみを使用する必要があることを効果的に伝えます。Gitlab/ NGINXの場合は安全な通信の期間は24ヶ月に設定されています!

STSヘッダーに関する情報: http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
Gitlabのインストールに関する情報: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md

0
Louis Parkin