Configurando o HTTP Strict Transport Security (HSTS)

É possível especificar o HTTP Strict Transport Security (HSTS) em cabeçalhos de resposta para que o seu servidor anuncie para os clientes que ele aceita apenas solicitações de HTTPS. É possível redirecionar qualquer solicitação que não seja de HTTPS para os hosts virtuais ativados para SSL.

Antes de Começar

  • Se o SSL/TLS for finalizado por um dispositivo antes do IBM HTTP Server (IHS) e se o IBM HTTP Server não estiver configurado para o SSL/TLS, o procedimento a seguir não se aplicará. Em vez disso, deve-se configurar o HTTP Strict Transport Security no dispositivo que finalizou o SSL/TLS. Para obter mais informações sobre o HTTP Strict Transport Security, consulte RFC 6797 seção 7.
  • Determine se a sua política de HSTS é aplicável apenas ao domínio ou se ela inclui subdomínios.
  • Determine se o domínio pode fazer parte da lista pré-instalada de hosts HSTS conhecidos em um cliente.
  • Determine por quanto tempo o cliente pode armazenar em cache as informações que indicam que o domínio é um host HSTS.
  • Restrição: o servidor não inclui os cabeçalhos do HSTS em respostas HTTP 304 (não modificadas). Essas respostas são usadas para validar a criação recente do cache. Um cliente não verá os cabeçalhos do HSTS até que ele acesse pelo menos um recurso não armazenado em cache (ou antigo) no servidor.
  • O HSTS funcionará apenas se o cliente estiver se conectando com as portas padrão para HTTP (porta 80) e HTTPS (porta 443). Se você estiver usando portas não padrão em sua configuração do IBM HTTP Server, precisará usar um dispositivo de front-end adicional que faça uso das portas padrão. Coloque o dispositivo de front-end adicional entre o seu IBM HTTP Server e o cliente. Exemplo
    client ----> load balancer (ports 80 and 443) ----> IHS (other ports) 

Procedimento

  1. Ative a modificação dos cabeçalhos de resposta.
    Remova o comentário da diretiva Módulo de Carregamento a seguir para o módulo mod_headers no arquivo httpd.conf:
    LoadModule headers_module modules/mod_headers.so
  2. Defina a política de HSTS para os clientes.

    No arquivo httpd.conf, faça as atualizações a seguir:

    1. Inclua a diretiva Cabeçalho para Strict-Transport-Security.
      O Cabeçalho de exemplo a seguir especifica opções úteis para definir sua política de HSTS. A diretiva especifica que o servidor sempre requer conexões HTTPS. As conexões HTTPS se aplicam tanto ao domínio quanto a qualquer subdomínio. Um cliente pode manter o domínio em sua lista pré-instalada de domínios de HSTS para um máximo de um ano (31536000 segundos).
      Header always set Strict-Transport-Security "max-age=31536000;
            includeSubDomains; preload"
    2. Inclua a diretiva Header em cada seção do host virtual, < virtualhost>, que está ativada para Secure Sockets Layer (SSL)...
  3. Redirecionar solicitações de hosts virtuais que NÃO estão ativados para SSL para hosts virtuais que estão ativados.
    RewriteEngine on 
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]
    • Inclua a sub-rotina uma vez para cada seção de host virtual não SSL no arquivo httpd.conf.
    • Inclua a sub-rotina uma vez no arquivo httpd.conf global, mas fora das seções do host virtual.

Resultados

Você configura o IBM® HTTP Server para que ele instrua os clientes a se conectarem aos domínios e subdomínios especificados somente sobre HTTPS. Para assegurar que o IBM HTTP Server não processe solicitações nãoHTTPS sobre não SSL, configure o servidor para redirecionar essas solicitações para hosts virtuais ativados por SSL

O Que Fazer Depois

Inclua seu servidor como um front-end para o seu ambiente de servidor de aplicativos, de forma que as conexões entre o seu servidor de aplicativos e um cliente sejam sobre HTTPS.