Pode ser o resultado de sua tentativa de ofuscar o nome do domínio, mas o HSTS exige o FQDN www.example.com
e não funciona com nomes de host curtos, como www
.
Eu configurei o Apache para usar o HSTS da seguinte forma apenas para fins de teste e aprendizado:
/etc/apache2/sites-enabled/000-default.conf
NameVirtualHost 192.168.3.55:80
NameVirtualHost 192.168.3.55:443
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<VirtualHost www:80>
ServerName www
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost www:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName www
SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/mysitename.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/mysitename.key"
Header always set Strict-Transport-Security "max-age=63072000;includeSubdomains;"
</VirtualHost>
Eu posso conectar-me à porta 80 e à porta 443 muito bem. O primeiro site não é criptografado e o segundo é. Tudo bem lá.
Depois de visitar o site HTTPS, vejo os cabeçalhos do hsts bem:
Strict-Transport-Security:max-age=63072000; includeSubdomains;
Quando eu digito link , vejo:
Upgrade-Insecure-Requests: 1 in the header using developer tools
No entanto, o navegador se conecta ao site HTTP, eu tcpdump a solicitação e vejo a resposta está clara também.
Não deveria ser uma conexão segura ou estou faltando alguma coisa? Eu pensei que o navegador tentaria apenas visitar o site seguro a partir de agora)
Como estou testando, não tenho um certificado válido, ele foi autoassinado. Oops Viva e aprenda.
Tags apache-2.4 hsts