Segurança de Transporte Estrito - includeSubdomains
O problema é o escopo do cabeçalho HSTS, ele inclui todos os subdomínios. Se acessar http://demo.xml-director.info
com um navegador primeiro , tudo funcionará bem.
No entanto, após o primeiro acesso a https://xml-director.info/
ou https://www.xml-director.info
, o navegador receberá um cabeçalho HSTS para todos os subdomínios configurados para expirar no futuro (em dois anos ...?) e, portanto, não tentará conectar-se a qualquer (sub) domínio sobre http novamente até o cabeçalho expirar.
Por acaso, este cabeçalho não tem efeito nas ferramentas cli, como wget
e curl
.
Não inclua subdomínios
Se houver algum subdomínio que deve ser acessado por http - não use includeSubdomains
. Em vez disso, se você quiser usar o cabeçalho HSTS, restrinja-o somente ao domínio acessado (que é o comportamento padrão):
<VirtualHost *:443>
ServerName www.xml-director.info
ServerAlias xml-director.info
Header always set Strict-Transport-Security "max-age=63072000"
Corrigindo cabeçalhos HSTS indesejados
Um navegador que recebeu um cabeçalho de HSTS não tem como limpá-lo por si próprio, ele sempre tentar acessar o domínio por meio de https , o que, se não houver resposta, significa que ele está preso no limbo.
Para corrigir a situação atual dos navegadores existentes (supondo que não seja um problema "apenas eu"), é necessário expirar o cabeçalho HSTS através de uma conexão https. ou seja:
<VirtualHost *:443>
ServerName *.xml-director.info
Header always set Strict-Transport-Security "max-age=0"
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}
Ou equivalente. Desta forma, o cabeçalho HSTS é limpo e o acesso http é restaurado.