always
属性を削除してみます。だから、次の操作を行います。
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
をこの代わりに:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
他のオプションだけではなく、メインのトップレベルの設定よりもHTTPSのVirtualHostの中でこれを設定することです:
これを行います。これに代えて
<VirtualHost *:443>
(All other virtual host config)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
<VirtualHost *:443>
(All other virtual host config)
</VirtualHost>
これは、それぞれのVirtualHostに追加する必要があるという欠点があります(または、見た目によっては利点があります)が、最初のオプションは自動的にすべてのHTTPS仮想ホストに適用されます。
また、予圧には十分注意してください。それは容易に可逆的ではありません!あらかじめロードリストに登録する前に、良い(つまりエラーのない)設定(あなたが行っていないと思われる)を数ヶ月にわたって実行することを強くお勧めします。 (プリロードの提出が必要とし、あなたの設定を行うように設定されているなどのように)あなたがhttps://www.example.comを実行すると仮定すると、これはまたhttp://example.comに応答し、https://example.comにリダイレクトして、https://www.example.com:プリロードはあなたの問題を引き起こす可能性があります。一例を与えることを
。あなたのウェブサイトは素敵で安全です。しかし、ドメインを内部的に再利用する企業(これはかなり一般的です)では、特にプリロードするときに問題が発生する可能性があります。たとえば、http://intranet.example.comで公開されていない非セキュアサイト、またはhttp://dev.example.comというサイトのセキュリティで保護されていない開発版を実行した場合、このサイトもHTTPS経由でサービスする必要があります。 example.comのサブドメインです)。ほとんどの人がhttp://example.comまたはhttps://example.comにアクセスしないので、トップレベルドメインではこのHSTSヘッダーは見られないため、ほとんどの人が効果を発揮することはほとんどありません。しかし、プリロードが有効になるとすぐに、ブラウザーはアクセスしなくてもトップレベルドメインのHSTSについて知り、そのHTTP専用サイトへのアクセスを即座に失い、簡単にこれを取り消すことはできません!たくさんの企業がまだHTTP経由で提供されている多くの内部サイトとツールを持っており、それらをすべてHTTPSにアップグレードしています(これはとにかくbtwでやってください!)。
<VirtualHost *:443>
ServerName example.com
(All other virtual host config)
#Set HSTS at top level without includeSubDomain
Header always set Strict-Transport-Security "max-age=31536000"
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
(All other virtual host config)
#Set HSTS at subdomain level
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
これは、誰かが他を設定することができますよう(ほど安全ではありません。どちらか、この問題を回避内部で別のドメインを使用するか、またはあなただけのトップレベルドメインにincludeSubDomainせずにこれを設定することができますするには
http://wwww.example.com(4つのWに注意してください)またはhttp://fake.subdomain.comのようなHTTP上のサブドメインですが、少なくともHTTP専用サイトは壊れません。この設定は、トップレベルドメインであってもより安全なincludeSubDomainsを要求するため、プリロードリストからは許可されません。
トップレベルのドメインでもincludeSubDomainsを使用したい場合は、HTMLのトップレベルドメインからのリソースを含めることを強くお勧めします(HSTSが301/302sに設定されているため、wwwバージョンにリダイレクトされても)。この方法では、事前ロード前でも訪問者がトップレベルでHSTS設定を読み込むようにしています。
<img source="https://example.com/logo.png">
はそれで実行し、小さな有効期限、およびビットのための無プリロードタグ:たとえば、あなたの代わりにトップレベルドメインへの呼び出しにあなたのロゴを置き換えることができます。その後、有効期限を延長します。その後、すべてが機能する場合は、preloadタグを追加してpreloadリストに提出します。
これはすべて少し難しいかもしれませんが、おそらくあなたはすべてのことを考えていますが、事前ロードは考えられないと信じられないほど危険です。私がそれが最も安全なオプションであることに同意するけれども、私の意見では、HSTSをプリロードすることはほとんどのサイトにとって過度のものです。
ありがとうございました –