A variável% {HTTPS} está ativa sempre que https é especificado no URL?

1

Do manual do Apache HTTP Server, ele mencionou

Will contain the text "on" if the connection is using SSL/TLS.

Significa que ele está "ligado" APENAS quando a conexão SSL / TLS é totalmente estabelecida com o handshake concluído com êxito? Ou significa que ele está "on", desde que o solicitante especifique "https" na URL e inicie uma conexão SSL / TLS?

Porque eu tenho muitos VHs (alguns http, alguns https) e quero economizar esforço colocando uma verificação condicional fora & antes de toda VH usando% {HTTPS} para adicionar o cabeçalho de resposta do Strict Transport Security. Gostaria de saber se o solicitante especificou "https" na URL de um VH que não suporta https, a verificação condicional ainda adicionará o cabeçalho Strict Transport Security na resposta de erro.

    
por bboy 15.04.2018 / 14:21

1 resposta

1

I wonder if requester specified "https" in the URL for a VH which does not support https, will the conditional check still add the Strict Transport Security header in the error response.

Se o host virtual não oferecer suporte a HTTPS, a conexão falhará e o navegador não obterá uma resposta HTTP, portanto, não poderá recuperar nenhum cabeçalho HTTP.

Então, sim, você está seguro para adicionar HSTS com base nessa variável HTTPS.

Ou, se ainda estiver preocupado, basta adicioná-lo à configuração do host virtual HTTPS e não à configuração de nível superior. Essa é a minha opção preferida, pois permite cabeçalhos de HSTS diferentes por host virtual (por exemplo, se você não estiver pronto para usar o atributo includeSubDomain no domínio de nível superior, pois alguns subdomínios ainda não estarão disponíveis no HTTPS).

    
por 15.04.2018 / 15:42