Questão HSTS não funciona com o Chrome


Eu configurei o Apache para retornar o cabeçalho HSTS. Ao conectar-se a https://lab20.example.com do Google Chrome e executando com ferramentas de desenvolvedor, posso ver o seguinte cabeçalho de resposta: Strict-Transport-Security:max-age=63072000; includeSubdomains;

Mas não funciona. Quando tento acessar o http://lab20.example.com, O Chrome permite isso.

Além disso, ao executar a partir do chrome: chrome://net-internals/#hsts Query domain "lab20.example.com" Eu recebo "Resposta não encontrada".

Alguém poderia explicar por que isso acontece?


2


origem


Ativar hsts no servidor - mussdroid


Respostas:


Para outras pessoas que estão vendo um problema semelhante, talvez o seu navegador ainda não tenha acessado o site por HTTPS. Tente acessá-lo por HTTPS e, em seguida, novamente por HTTP. Se a HSTS for implementada corretamente, essa última solicitação deverá falhar. MDN explica bem:

Nota: o Strict-Transport-Security cabeçalho é ignorado pelo navegador   quando seu site é acessado usando HTTP; isso é porque um invasor pode   interceptar HTTP conexões e injetar o cabeçalho ou removê-lo. Quando   seu site é acessado por HTTPS sem erros de certificado, o   navegador sabe que seu site é HTTPS capaz e honrará o    Strict-Transport-Security cabeçalho.


6



Existe uma razão para o voto baixo? Isso deveria ser um comentário em vez de uma resposta ou algo assim? - sfarbota
Eu não entendo o downvoting. Eu também tive o mesmo problema e não era óbvio para mim que não funciona mais http: a menos que eu leia sua resposta. - ernesto che


Você configurou sua configuração de site para que o Apache force o SSL em todos os subdomínios, não apenas em example.com e www.example.com?

Também acredito que o chrome: // net-internals / # hsts mostra apenas consultas corretas de sites que são pré-carregados e adicionados via https://hstspreload.appspot.com/ . Isso explica por que o chrome: // net-internals / # hsts não funciona para você.


0



Eu tenho apenas um domínio: lab20.example.com com virtualhost para a porta 80 e outro virtualhost para a porta 443 com o HSTS habilitado. E sim - como você pode ver no cabeçalho "includeSubdomains"; (meu navegador está recebendo um cabeçalho correto na resposta ao solicitar o lab2.example.com via https). Então, por que isso não está funcionando, testado com o Chrome 47 e 52 (47 pode não funcionar como por caniuse.com/#feat=stricttransportsecurity) - user2913139
Hmm, não tenho muita certeza. Gostaria de acrescentar que todas as solicitações em lab20.example.com:80 redirecionem para lab20.example.com:443 (wiki.apache.org/httpd/RedirectSSL). Além disso, se você precisar apenas de HSTS para o subdomínio específico, poderá tentar remover includeSubdomains e apenas colocar o cabeçalho HSTS no subdomínio. Outra coisa, pode ser estúpido, mas eu definiria 'includeSubDomains' em vez de 'includeSubdomains'. - isdf
OK, eu consertei. O problema era que eu não tinha CA na loja confiável do Chrome. Adicionado exceção manualmente. Parece que para tal cenário, o cromo não honra cabeçalhos de HSTS. Uma vez adicionado CA à loja confiável tudo está funcionando bem - eu também vejo meu domínio em chrome: // net-internals / # hsts. Obrigado ! - user2913139


Isso pode acontecer porque o seu PC não tem SSL ativado ou forçado. Se você não puder desativar o NO-SSL, o seu PC pode não suportar a desativação do NO-SSL.


0