私は次の設定をしています:
アプリケーションhttps://app.domain.de
は本番環境であり、HTTPSを使用するように自動的に転送されます。ここではすべて正常に動作します。さらに、http://develop.app.domain.de
を介してアクセスできるQAチーム用のアプリケーションの開発バージョンがいくつかあります(ここではHTTPSは必要ありません)。
問題はここから始まります:https://app.domain.de
Chrome(そして他のブラウザも推測します)にアクセスするとすぐにhttp://develop.app.domain.de
(HTTPSなし)もhttps://develop.app.domain.de
に転送します(HTTPS)もちろん、HSTSを無効にして、このドメインのキャッシュをクリアすると、http://develop.app.domain.de
が再び機能しますが、https://app.domain.de
に再度アクセスするまでは機能しません。
開発環境でHTTPSを有効にすることはできません。これを行うには、少なくともHerokuにホビープランが必要であり、そのため、アプリケーションのすべての開発バージョンとテストバージョンにお金が無駄になります。また、URLスキーマを保持したいと思います。
だから私の質問は、どうすればこの厄介な転送(HSTS)を永続的に無効にできますか?
メインドメインでは、HSTSヘッダーのincludesubdomainsオプションを削除して、サブドメインをリダイレクトしないようにすることができます。
ただし、これは最も安全なソリューションではありません。効果的にするには、すべてのドメインとサブドメイン(または攻撃者の車)にHSTS + includeサブドメインを設定することをお勧めします。偽のドメイン " http://secure.yourdomain.com "など)。
したがって、最も安全な解決策は、開発ドメインに自己署名証明書(または実際の証明書)を使用し、それをブラウザーにインポートすることです。
Google Chrome警告ページのどこにでもthisisunsafe
と入力すると、警告なしで読み込まれます。冗談はありません。
HSTSは「厄介」ではなく、セキュリティ機能です。そして、あなたのドメインが自発的にアクティブ化することを選択したもの!
IncludeSubDomainsオプションを本番環境から削除して、サブドメインではなくトップレベルドメインにのみ適用されるようにすることができます。ただし、Webブラウザーにプリロードするために送信していない場合に限ります(必要な内容を完全に理解せずにプリロードしなかったと言ってください)。 SSL Labsテストツール )を介してメインドメインを実行することで、これを確認できます。
ただし、世界はどこでもHTTPSに移行しており、開発環境は本番環境を反映していません。一部の機能(HTTP/2、Geolocation ...など)は、HTTPSを使用している場合にのみ機能します このリストは増え続けています 。また、リソースの開発方法と参照方法によっては、本番環境にデプロイすると、混合コンテンツの警告やコンテンツの欠落が表示される場合があります。したがって、私の意見では、開発/ QA環境でHTTPSが必要です[〜#〜] do [〜#〜]。私はあなたのプラットフォームを知りませんが、これを回避しようとするよりも、開発環境でHTTPSを設定する方法を理解する方が本当に良いでしょう。自己署名証明書は無料で作成でき、テスト環境で信頼できるようにすることができるため、実際の証明書と特定の数のユーザーとを区別できません。