2017-01-19 6 views
2

私はCentOSに2つの異なるWebサーバー(NGINX & nodejs)に2つのサイトを持っています。私nginxの configに
は、私は永久にhttps://example.comにリダイレクトするhttp://example.comを設定しています。反対側の
、URL http://example.com:8080nodejsによってハンドルされ、どこにリダイレクトされていません。ブラウザのキャッシュ301がhttp://example.comのリダイレクトをhttp://example.com:8080に使用する理由

シナリオ

私は私のブラウザ(クロム、Firefoxやサファリ)にhttp://example.comを要求すると、それは、https://example.comにリダイレクトされ、これはOKですよ。私はhttp://example.com:8080を入力すると、それはまたhttps://example.com:8080にリダイレクトされ、これは正しくないです。

ときIブラウザのキャッシュをクリアし、URL http://example.com:8080は正常に働いていたが、http://example.comをentringした後、URL http://example.com:8080HTTPSに再びリダイレクト。誰でもこの問題について助けてくれますか?

答えて

2

おそらくHTTP Strict Transport Security (HSTS)で定義されているものが発生します。

https://example.comリクエストの応答を確認する必要があります。おそらくStrict-Transport-Securityヘッダーが含まれており、ブラウザにすべてのURIをexample.comドメインの安全なスキームを使用するように書き直すように指示しています。 HTTP厳格なトランスポート・セキュリティ(HSTS)の8.3. URI Loading and Port Mapping sectionから関連抜粋仕様:URIが「80」の明示的なポートコンポーネントを含んでいる場合

UAは、URI「https」を持つスキーム[RFC2818]、および を交換する必要があり、 が "80"でない明示的なポートコンポーネントが含まれている場合、UAはポートコンポーネントを "443"に変換するか、または

に変換する必要があります。 それ以外の場合は、

URIに明示的なポートコンポーネントが含まれていない場合は、UA を追加してはいけません。

注:これらの手順では、HSTSポリシーがHTTP に適用され、HSTSホストの任意のTCPポートに適用されます。

注:明示的なポートが(とサブドメインと より少ない程度に)設けられている場合には、HTTP(すなわち、非セキュア)サーバー指定 上で実行されているが、実際にそこにある ことを合理的に可能性がありますしたがって、HTTPS要求は (付録A(「設計上の決定に関する注意事項」)の6項を参照)失敗することになります。

詳細については、Strict-Transport-Security MDN pageを確認してください。

+0

うわー。ありがとう@レオニード。 * NGINX *から 'add_header Strict-Transport-Security max-age = 15768000'を削除して動作しました。 –

関連する問題